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?
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
}
if (NSFoundationVersionNumber > NSFoundationVersionNumber_iOS_6_1) {
// do stuff for iOS 7 and newer
}
else {
// do stuff for older versions than iOS 7
}