Compiler des bouts de code OS X ou iOS dans les classes communes
muqaddar
Administrateur
Salut,
Pour partager des classes entre iOS et Mac, quelle est la technique la plus simple pour compiler des bouts de code pour l'un ou l'autre ?
J'avais ajouté un Preprocessor Macro "MAC" dans mon target, mais je ne trouve pas ceux qui existent déjà .
Quelles sont vos astuces, les choses à faire ou ne pas faire ?
Pour partager des classes entre iOS et Mac, quelle est la technique la plus simple pour compiler des bouts de code pour l'un ou l'autre ?
J'avais ajouté un Preprocessor Macro "MAC" dans mon target, mais je ne trouve pas ceux qui existent déjà .
#ifndef MAC<br />
Code pour iOS<br />
#endif
Quelles sont vos astuces, les choses à faire ou ne pas faire ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Voilà leur noms, et elles sont affectées à 0 ou 1 selon la plateforme cible à la compilation.
J'avais essayé TARGET_OS_MAC tout à l'heure sans succès.
Pas de problème avec maintenant.
Merci.
ça ne pourrait pas au moins s'ajouter en plus ?
Edit: En fait, par rapport au .h, effectivement c'est bizarre, puisque ce sont bien des valeurs 0 ou 1 qui sont affectées, ce n'est pas seulement le symbole qui est défini.
http://sealiesoftware.com/blog/archive/2010/8/16/TargetConditionalsh.html
ce qui change tout.
TARGET_OS_MAC est toujours à 1 donc ce n'est pas ce qu'il me faut.
Moi j'ai juste dit que les #define existait et que leur valeur dépendait de la plateforme cible /tongue.png' class='bbc_emoticon' alt=':P' />
En gros, il faut faire:
#if TARGET_OS_IPHONE
// code iOS
#else
// code Mac
#endif
C'est moche. Ou alors, je n'ai pas compris.
Déjà , je préfère ça à un if...else. On voit mieux dans quel bloc on est tout de suite. Cele est une préférence personnelle pour la lisibilité. (utile si le bloc de code est assez long)
Et puis on sait jamais, si Apple sort un 3è OS... ;-)
Ensuite, je trouve nul que TARGET_OS_MAC soir à 1 sur iOS, même si je le conçois.
Ou encore que je doive me servir de TARGET_OS_IPHONE, même pour l'iPad.
Cela me fait 3 raisons. /smile.png' class='bbc_emoticon' alt=':)' />
Je peux éventuellement faire ça apparemment:
Ce qui me permet d'utiliser mes 2 macros plus parlantes par la suite.
Non, je fais juste quelques tests. Je retouche un peu à la prog Mac après la discussion que nous avons eu la semaine dernière dans un autre sujet... /smile.png' class='bbc_emoticon' alt=':)' />