2010-03-12 5 views
0

Deux questions:iphone - conditionals compilateur

ce code

#ifdef __IPHONE_3_0 
    // iPhone 3.0 specific stuff 
#else 
    // iPhone 2.2 specific stuff 
#endif 

compile des codes spécifiques pour des versions spécifiques de l'iPhone. Comment cela pourrait-il être transformé en un ensemble de dispositifs? Par exemple: si iphone version < 3.1 ou si version> = 3.2, et ainsi de suite ...

2) où puis-je obtenir une liste de toutes les conditions autorisées par Xcode?

merci pour toute aide.

Répondre

1

Ces définitions se trouvent dans Availability.h, situé dans n'importe quel SDK que vous utilisez. Par exemple, vous pouvez trouver une version pour le simulateur 3.0 à

/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/usr/include/Availability.h 

Comme une note, il est facile de rechercher des constantes comme __IPHONE_3_0 en les surlignant, un clic droit et en sélectionnant « Jump To Définition » de la pop menu

En Availability.h, l'en-tête décrit lui-même en détail comment compiler de manière sélective pour différentes versions. Par exemple, pour compiler le code que si la version iPhone OS est supérieure à 3.0, vous pouvez utiliser

#if __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_3_0 
// Your code here 
#endif 

Notez que ceci est pour déterminer ce qu'il faut inclure au moment de la compilation, et non pour le code permettant de manière sélective en fonction de la version de le système d'exploitation sur lequel s'exécute l'application.

+0

MERCI! Tu es l'homme! – SpaceDog