Je serais prudent avec les floatValue résultat de retour:
[[[UIDevice currentDevice] systemVersion] floatValue]
Comme avec tout flotte, il peut ne pas être exactement ce que vous attendez. Lors de l'exécution de la ci-dessus sur mon système, confondu pourquoi mon instruction conditionnelle n'était pas en cours d'exécution, j'ai remarqué que la valeur retournée est:
3.20000005
Recommander les solutions ici: Vérifier la Version iOS de l'iPhone
Extrait:
NSComparisonResult order = [[UIDevice currentDevice].systemVersion compare: @"3.1.3" options: NSNumericSearch];
if (order == NSOrderedSame || order == NSOrderedDescending) {
// OS version >= 3.1.3
} else {
// OS version < 3.1.3
}