2016-11-14 1 views
1

Ich habe mehrere Ziele und abhängig davon muss ich Header importieren. Ich kann dies tun, indem Sie einige Präprozessor Wert zu definieren und es dann mit #ifdef überprüfen, aber ich frage mich, ob es irgendeine Art und Weise, wie etwas zu tun:Ermitteln des Zielnamens während der Kompilierung

#if TARGET_NAME = "FirstTarget" 
#import "SomeHeader.h" 
#endif 

Antwort

0

u wie unten beispielsweise verwenden kann,

//Your current target's are defined 
#define FIRST_TARGET "FirstTarget" 
#define SECOND_TARGET "SecondTarget" 
#define THIRD_TARGET "ThirdTarget" 

//set which target u want to run 
#define TARGET_NAME FIRST_TARGET //SECOND_TARGET //THIRD_TARGET 

//use like below 

#if (TARGET_NAME == FIRST_TARGET) //or u can directly specify name instead of defining at the beginning 
    #import "SomeHeader.h" 
    //other headers 
#elif (TARGET_NAME == SECOND_TARGET) 
    //header to be in second target 
#elif (TARGET_NAME == THIRD_TARGET) 
    // other header 
#endif 

Edit:

ich es bekam, gibt es Fehler, da Makros nicht mit variabler Länge Werte nicht zu vergleichen, um weitere Informationen zu diesen hear sehen.

so zu arbeiten, um u es wie unten ändern können,

//Your current target's are defined, instead of strings give some constant values 
#define FIRST_TARGET 1//@"FirstTarget" 
#define SECOND_TARGET 2//@"SecondTarget" 
#define THIRD_TARGET 3//@"ThirdTarget" 

//set which target u want to run 
#define TARGET_NAME FIRST_TARGET //SECOND_TARGET //THIRD_TARGET 

//use like below 
#if TARGET_NAME == FIRST_TARGET 
#import "SomeHeader.h" 
//other headers 
#elif (TARGET_NAME == SECOND_TARGET) 
//header to be in second target 
#elif (TARGET_NAME == THIRD_TARGET) 
// other header 

#endif 
+0

es nicht –

+0

funktioniert Ich werde die Antwort bearbeiten .. sorry ich es –

+0

der Entsendung die Antwort zu der Zeit testen didnt danke für Ihre Antwort, aber es sieht nicht viel besser aus, verglichen mit dem Definieren von Präprozessor-Makros. Nach einigen Recherchen habe ich bei dieser Lösung aufgehört –

Verwandte Themen