Question

J'ai iphone avec os ver. 2.0 Je l'ai lu pour app store tous appplication doit être exécuté 3.0 os.so comment pourrais-je faire ma demande de fonctionner dans les deux firmware.is il un moyen que je peux détecter si ver os.> 3.0 puis exécutez différentes statments ALSE pour exécuter statments inférieure à 3,0 os.currently J'utilise cela.

#if __IPHONE_3_0
cell.textLabel.text=cellValue;
[cell.textLabel setFont:[UIFont systemFontOfSize:15.0]];
[cell.textLabel setLineBreakMode:UILineBreakModeTailTruncation];
#else
cell.text=cellValue;    
[cell setFont:[UIFont systemFontOfSize:15.0]];
[cell setLineBreakMode:UILineBreakModeTailTruncation];  
#endif

va l'exécuter à la fois firmware

je veux faire mon application à exécuter sur> = 3.0 os et inférieur à ce ... s'il vous plaît aidez-moi

Comment puis-je vérifier ma demande de méthodes dépréciées ... je ne peux voir cette ligne comme dépréciée cell.text = CellValue;

est-il quelque chose à change.i ont installé un nouveau sdk nommé iphone_sdk_3.0__leopard__9m2736__final.dmg

Était-ce utile?

La solution

Votre code ci-dessus ne fonctionne pas sur les deux ensembles de systèmes d'exploitation. Lorsque vous utilisez des instructions #if, vous excluez essentiellement le code pour une version du système d'exploitation pour cette construction particulière. En d'autres termes, chaque version que vous construisez, un lorsque vous définissez __IPHONE_3_0 et un quand vous ne le faites pas, exclura le code pour l'autre.

Ce que vous faites est la construction de deux exécutables, qui est construit pour __IPHONE_3_0 et un autre pour! __IPHONE_3_0.

Si vous voulez construire un exécutable, qui est une application, qui fonctionne sur les deux, vous devez remplacer les déclarations de #if avec ifs d'exécution, ne compilera pas #ifs de temps, comme:

if (theOS >= kiPhone3)
   ....
else
   ....

Vous pouvez également créer un lien dans les bibliothèques qui sont 3.0 seulement, mais le test de la disponibilité du cadre lors de l'exécution, puis passez l'appel si les méthodes ne sont pas disponibles. Il existe différents appels que vous aurez besoin d'utiliser, un pour vérifier si une méthode est disponible, et un pour si une classe est disponible:

Class newClass = (NSClassFromString(@"NewClassName"));
    if (newClass != nil)

La dernière chose, il y a une version plus récente du SDK que celui que vous avez mentionné.

Bonne chance!

Autres conseils

Il y avait un poste similaire il y a quelque temps. Jetez un oeil à l'échantillon de MailComposer d'Apple pour voir en exemple d'une application qui prend en charge les 3.0 et 2.x de

Si vous le construisez contre le 2.0 (ou 2.1, ou 2.2.1, etc.) SDK, il fonctionnera sur ce SDK et toute version ultérieure d'Apple à moins spécifiquement interrompre le soutien pour ce SDK. Je vois beaucoup d'applications dans l'App Store qui disent qu'ils travaillent avec l'iPhone OS 2.x ou version ultérieure et ils fonctionnent très bien sur mon iPhone 3G en cours d'exécution 3.1.

Le if-else directives cacheront une partie du code du compilateur de sorte qu'il ne fonctionne pas sur les deux logiciels.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top