J'ai une constance.h fichier qui contient des constantes mondiales en fait. Étant donné que ma candidature est construite à la fois pour iPhone et iPad, je voudrais définir les mêmes constantes (c'est-à-dire avec le même nom) différemment pour les deux types de périphériques.
Pour une explication complète: P>
/******** pseudo code *********/ if (deviceIsIPad){ #define kPageMargin 20 } else { #define kPageMargin 10 }
5 Réponses :
hi écrivez ce code dans Appdelegate code> Classe
SecondVC *obj_secondvc = [[SecondVC alloc] initWithNibName:[AppDelegate isAppRunningOnIpad:@"SecondVC"] bundle:nil];
Ce n'est pas une classe, c'est un fichier d'en-tête, il n'est donc jamais initialisé de ne pas appeler des méthodes de là ..
évidemment, vous ne pouvez pas les faire conditionnellement de votre choix. Je recommande de créer une variable code> statique de code> et de les paramétrer sur le et pour la condition, utilisez quelque chose comme < / p> de sorte que cela irait p> #define code> est résolu au moment de la compilation, c'est-à-dire sur votre ordinateur
+ (void) initialiser code> méthode de votre classe. P>
Utilisez-le sur votre classe d'applDelegate, de cette façon, il sera accessible dans l'application.
Il est impossible d'obtenir le type de périphérique pendant l'étape de prétraitement. Il est déterminé de manière dynamique pendant l'exécution. Vous avez deux options:
Créez deux cibles différentes (pour iPhone et iPad, respectivement) et définissez macro là-bas. P> li>
Créer une macro qui insère une expression comme celle-ci: p> li> ol>
#define IS_IPAD (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad) #define kMyConstant1 (IS_IPAD ? 100 : 200) #define kMyConstant2 (IS_IPAD ? 210 : 230) #define kMyConstant3 (IS_IPAD ? @"ADASD" : @"XCBX")
Je pense que je vais essayer la deuxième option et si cela fonctionne correctement, je vais marquer votre réponse comme correct :)
Génial, tu m'as sauvé tellement de temps!
Utilisez Uidevice Macros - http://d3signerd.com/tag/uidevice/
Ensuite, vous pouvez écrire du code comme; p> ou p>
Vous ne pouvez pas faire cela avec définir, car ils sont étendus au moment de la compilation. Cependant, vous pouvez définir des variables et définir leur valeur initiale en fonction de l'interface utilisateur idiom: