vérification de la version de l'iPhone au moment de l'exécution ou de la compilation

Quelle est la différence entre run-time, par exemple, [[UIDevice currentDevice] systemVersion] , et la compilation, par exemple, __IPHONE_OS_VERSION_MIN_REQUIRED vérification? Quand devriez-vous l'un sur l'autre?

__IPHONE_OS_VERSION_MIN_REQUIRED est- __IPHONE_OS_VERSION_MIN_REQUIRED simplement une variable définie dans les parameters de construction?

J'ai lu les réponses à Comment cibler une version spécifique de l'iPhone? et d'autres questions connexes énumérées ci-dessous.

Mais, je viens de remarquer que __IPHONE_OS_VERSION_MIN_REQUIRED = 30200 quand je construis et fonctionne sur iPhone (4.3.1) avec Xcode 4. Pourquoi?

Lorsque vous soumettez votre code à Apple, en comstackz-vous une version pour chaque version de l'iPhone existante, en définissant __IPHONE_OS_VERSION_MIN_REQUIRED conséquence?

De cette façon, vous pouvez inspecter __IPHONE_OS_VERSION_MIN_REQUIRED et savoir quelle version iOS exécute le code.

Questions connexes:

  • Comment vérifier la version iOS?
  • Vérifier la version iOS lors de l'exécution?
  • Comment vérifier si la version iOS prend en charge la bibliothèque?

    __IPHONE_OS_VERSION_MIN_REQUIRED est en effet juste un paramètre de construction, que vous pouvez utiliser dans le préprocesseur pour modifier le code avant la compilation. Non, Apple ne comstack pas votre code pour chaque iPhone. Ils ne peuvent pas, puisque vous ne leur donnez pas le code. Vous pouvez utiliser la vérification du time de compilation pour déterminer, par exemple, si vous avez besoin de comstackr du code pour émuler une nouvelle fonctionnalité dans les anciennes versions du operating system. Toutefois, vous utilisez la vérification de version d'exécution pour déterminer si vous devez utiliser la version embeddede ou émulée de cette fonctionnalité.

    Par exemple, les iAds ont été ajoutés en 4.0. Vous prenez actuellement en charge les versions 4.0 et ultérieures, mais envisagez d'append le support pour 3.2 à l'avenir. Vous créez du code pour afficher d'autres annonces dans les anciennes versions, en utilisant la vérification d'exécution pour déterminer si vous devez utiliser iAds ou autre, mais vous ne voulez pas qu'il soit dans toutes les versions jusqu'à ce que le rest de l'application soit prêt pour 3.2. rendre votre application plus grande. Vous utilisez la vérification du time de compilation pour que le préprocesseur laisse ce code hors de vos versions. En utilisant la macro de version minimale, vous pouvez facilement append le code à votre version en modifiant le paramètre de génération de version minimale.

    Oui, __IPHONE_OS_VERSION_MIN_REQUIRED est juste la valeur de "iOS Deployment Target" sous "Build Settings". Assurez-vous que la cible correcte, pas le projet, est sélectionnée.

    Et, __IPHONE_OS_VERSION_MAX_ALLOWED correspond au paramètre de construction "Base SDK".

    Les mots de compilation ou d'exécution ou de programmation qui seront utilisés par le développeur. Ainsi, le meilleur exemple de time de compilation est l'heure d'écriture du code, comme l'import de la syntaxe et la déclaration des propriétés et des methods. ARC est la programmation de la compilation. Et venir à RUNTime après avoir écrit le code par le développeur va exécuter le programme s'appelle runtime. En ce moment, le code sera compilé et fera face à des erreurs d'exécution comme des programmes s'écraser et se ferme à un comportement inattendu du programme comme ça.

    Veuillez find ci-dessous url Pour plus de détails

    http://pc.net/helpcenter/answers/comstack_time_vs_runtime