我想定义一些变量取决于它是在Iphone还是Ipad应用程序上运行。所以我写了这段代码
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
#define ABC @"122"
NSLog(@"Ipad");
} else {
#define ABC @"123"
NSLog(@"iphone ");
}
NSLog(@" %@", ABC);
但在iphone和Ipad中都显示了123.
答案 0 :(得分:3)
#define
告诉预处理器通过与之关联的值修改源代码中ABC
的每次出现。
ABC
将替换为@"122"
后面的所有行中的#define ABC @"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);
答案 1 :(得分:3)
试试这个:
#define ABC (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? @"122" : @"123")
这应该适合你。