2012-04-04 39 views
0

我想定義一些變量取決於它是否在Iphone或Ipad應用程序上運行。所以我寫了這個代碼如何定義變量取決於條件在XCode

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    #define ABC @"122" 
    NSLog(@"Ipad"); 
} else { 
    #define ABC @"123" 
    NSLog(@"iphone "); 
} 
NSLog(@" %@", ABC); 

但在iPhone和iPad這表明123

+0

也許你不能定義,但另一種方法是使用NSString或int或其他變量和setvalues init。 – 2012-04-04 10:49:09

+0

@cat請參閱下面@sch的答案。你需要學習和理解'#define'的用途。 – 2012-04-04 14:08:47

回答

2

嘗試了這一點:

#define ABC (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? @"122" : @"123") 

這應該很好地工作適合你。

+0

它可能工作,但沒有必要。更好地瞭解如何使用#define以及它的用途。 – 2012-04-04 14:07:56

3

#define告訴預處理器與它相關的值修改源代碼的ABC每次發生。

ABC將與所有隨後的線#define ABC @"122"@"122"和通過@"123"在所有隨後的線#define ABC @"123"線取代。

這一步發生在構建時,而不是運行時。所以,你應該定義ABC爲一個字符串,其值設置如下:

NSString *ABC; 
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { 
    ABC = @"122"; 
    NSLog(@"Ipad"); 
} else { 
    ABC = @"123"; 
    NSLog(@"iphone "); 
} 
NSLog(@"%@", ABC); 
+0

但是因爲我想在pch文件中設置一些靜態變量,我該怎麼做? – cat 2012-08-04 16:20:38