Je l'utilise pour vérifier la version iOS, mais cela ne fonctionne pas: quand je fais p> rien ne se passe. Quelque chose ne va pas ici? P> p>
6 Réponses :
Définir cette méthode: puis définissez la macro comme cette méthode. p> p>
Nsorderedascending rendra cette méthode renvoyer false si le système d'exploitation actuel est> = 5.0. Vous devriez utiliser NsorderedDescendant
Vous avez défini une macro, mais vous l'utilisez de manière non macro. Essayez quelque chose comme ça, avec votre même définition macro.
IF_IOS5_OR_GREATER(NSLog(@"iOS5");)
Y a-t-il quelque chose que vous pourriez m'aider: Stackoverflow.com/q/21275316/434898 . Merci.
#ifdef __IPHONE_5_0 etcJust look for that constant. All the objective c constants start with two underscores
Ceci est une macro de préprocesseur, ce qui signifie qu'il est exécuté lorsque l'application est compilée, plutôt que sur le périphérique de l'utilisateur. En outre, une réponse correcte a déjà été sélectionnée il y a près d'un an ...
Cette macro est utile pour séparer le code dans le temps de compilation avec #ifdef code> et
#ifndef code>, toutes les autres réponses ne sont disponibles que dans l'exécution avec
si code > Utilisation de la déclaration.
Pour un chèque d'exécution Utilisez quelque chose comme ceci:
if([[UIDevice currentDevice] iOSVersionIsAtLeast:@"6.0"]) self.navigationBar.shadowImage = [UIImage new];
beaucoup plus simple:
Cela a l'inconvénient que vous ne pouvez pas l'utiliser en dehors des blocs de code, par exemple dans les fichiers d'en-tête, etc.
#define isIOS7 ([[[UIDevice currentDevice]systemVersion]floatValue] > 6.9) ?1 :0
Voulez-vous que cela vérifie si un utilisateur de votre application est en cours d'exécution iOS 5? Si oui, vous voulez quelque chose comme la méthode de James. Un préprocesseur macro ne vous aidera pas avec cela, car il fonctionne au moment de la compilation.
Il n'y a pas de vérifications d'exécution dans votre code, alors comment sur Terre est-il censé connaître la version actuelle iOS? Tout ce que vous faites est de vérifier la version du SDK que votre code a été compilé.
ERR @mikikeweller (et Chris), j'ai peur que l'un ni l'autre d'entre vous ne soit correct. La macro crée effectivement une vérification d'exécution si le temps compilé est rempli. L'OP appelait simplement la macro de manière incorrecte. Voir ici pour une explication complète de la façon dont cela fonctionne: Cocoawithlove .COM / 2010/07 / ...