36 votes

Comment cibler un iPhone version?

J'ai un peu de code que je veux exécuter uniquement sur le dernier SDK de l'iPhone (3.0), cependant je n'arrive pas à trouver un moyen de cibler 3.0 et d'ignorer 2.2.1 etc. Il y a une instruction ifdef, mais il semble juste de couvrir la totalité de l'iPhone:

#if TARGET_OS_IPHONE

Toute aide est appréciée.

89voto

Jane Sales Points 10895

Vous pouvez utiliser cette #define pour modifier ce que vous construisez pour chaque SDK...

#if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_2_2
// iPhone 3.0 code here
#endif

Et cela au moment de l'exécution pour exécuter le code pour la 3.0 et ci-dessus:

float version = [[[UIDevice currentDevice] systemVersion] floatValue];
if (version >= 3.0)
    {
    // iPhone 3.0 code here
    }

19voto

Drennyn Points 191

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
}

6voto

MattDiPasquale Points 23842

Mise à JOUR: Lors de la construction & de l'exécution sur iPhone (4.3.1) à l'aide de Xcode 4, ce qui ne semble plus fonctionner pour moi. Aussi, je reçois __IPHONE_OS_VERSION_MIN_REQUIRED = 30200.

L'iPhone Developer Cookbook dit, vous pouvez aussi faire:

#ifdef _USE_OS_4_OR_LATER
    // code to compile for 4.0 or later
#else
    // code to compile for pre-4.0
#endif

Et, il semble fonctionner pour moi. :)

4voto

BadPirate Points 11614

Assez sûr, vous pouvez aussi faire:

#ifdef __IPHONE_3_0
// 3.0 code here
#endif

0voto

Robert Gould Points 29406

C'est dans Xcode build options. La liste déroulante dans le coin supérieur gauche qui dit quelque chose comme "myapp - 3.0 | Debug" Sélectionnez le build que vous voulez et hop, votre fait.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X