0

我正在尝试制作一个宏,该宏将根据某些条件成为字符串。目标是检测应用程序在什么类型的设备上运行(iPhone、iPhone Retina、iPad 或 iPad Retina)。

这是我的尝试:

#define BEST_PICTURE_SIZE_KEY \
if([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale]==2.0) \
    (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)?@"LARGE":@"HUGE" \
else \
    (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)?@"BIG":@"LARGE"

但是当我尝试使用它时,我得到了错误:

if([lc_classified.photo objectForKey:BEST_PICTURE_SIZE_KEY])
[lc_urlArray addObject:[NSString stringWithFormat:@"%@%@",appdelegate.initObject.imgPrefix,[lc_classified.photo objectForKey:BEST_PICTURE_SIZE_KEY]]];

任何想法 ?谢谢

4

1 回答 1

1

您可以尝试像这样重新格式化它:

#define BEST_PICTURE_SIZE_KEY \
(([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale]==2.0) ? \
(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)?@"LARGE":@"HUGE" \
: \
(UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)?@"BIG":@"LARGE")

它似乎工作。

于 2013-06-14T16:26:32.900 回答