web-dev-qa-db-fra.com

La meilleure façon de vérifier iOS 7 ou une version antérieure?

J'ai besoin de reconfigurer une interface utilisateur basée sur la version iOS sur laquelle je cours, j'ai donc besoin d'un bon moyen de vérifier la version iOS. Pour le moment, je fais ceci:

if ([[[UIDevice currentDevice] systemVersion] isEqualToString: @"7.0"]) {
    //do stuff
}

Je préfère ne pas coder en dur ces comparaisons de chaînes et prendre des décisions en fonction de cela. Y a-t-il de meilleures façons de procéder?

41
Huang

Je garde toujours ceux-ci dans mon fichier Constants.h:

#define IS_IPHONE5 (([[UIScreen mainScreen] bounds].size.height-568)?NO:YES) 
#define IS_OS_5_OR_LATER    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0)
#define IS_OS_6_OR_LATER    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0)
#define IS_OS_7_OR_LATER    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)
#define IS_OS_8_OR_LATER    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
#define IS_OS_9_OR_LATER    ([[[UIDevice currentDevice] systemVersion] floatValue] >= 9.0)

Bien que je préfère toujours les macros ci-dessus, pour compléter la réponse acceptée, voici la méthode approuvée Apple:

if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {

    // do stuff for iOS 7 and newer

}
else {

    // do stuff for older versions than iOS 7
}
126
Segev
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {

    // do stuff for iOS 7 and newer

}
else {

    // do stuff for older versions than iOS 7
}
118
Ar Ma