2014-01-28 149 views
0

我試着寫這段代碼在pch文件:
#define someString
if(x == 5) {
if(y == 7) {
someString = @"Test1"
}
else {
someString = @"Test2"
}
}
else {
someString = @"TEST3"
}
不能寫嵌套的宏文件

但無濟於事.. 有人能幫助?

p.s.我不想用這個表示法寫下來:(x == 5)? @「test1」:@「test3」

回答

2

您可以對此使用#if,#elif和#else指令。請參閱以下示例代碼。

#define XVALUE 5 
#define YVALUE 7 

#if defined(XVALUE) && XVALUE == 5 
    #if defined(YVALUE) && YVALUE == 7 
     #define someString @"Test1" 
    #else 
     #define someString @"Test2" 
    #endif 
#else 
    #define someString @"Test3" 
#endif 

你可能想使功能可以替代導致一個字符串值,一些行內代碼,如下:

#ifdef __OBJC__ 
static inline NSString* SomeStringInline(int xValue, int yValue) 
{ 
    if(xValue == 5) 
    { 
     if (yValue == 7) { 
      return @"Test1"; 
     } 
     else 
     { 
      return @"Test2"; 
     } 
    } 
    else 
    { 
     return @"Test3"; 
    } 
} 
#endif 

而且你喜歡

NSLog(@"%@", SomeStringInline(5, 7)); 

調用這個方法,輸出將是「Test1」。

使用你的任何套房。

有關宏的詳細幫助:

在第一碼塊
+0

,可以我添加下的#if多個線限定(y值)&& y值== 7? – JAHelia

+0

在#if和#else或#endif塊之間,可以根據需要添加儘可能多的行。但是,你想要添加什麼! – Ansari