我想使用iPhone
检查设备是iPad
还是macro
。
我有一个文件Constant.h
,我使用#define
给出了值。
现在,我想使用#ifdef
#endif
检查设备。
只能在.m
文件中使用Follwing方法。
但我只有一个.h
。
- (BOOL) isPad{
#ifdef UI_USER_INTERFACE_IDIOM
return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad);
#else
return NO;
#endif
}
所以上面的方法对我没用?
有没有办法做到这一点?还是其他任何方式?
答案 0 :(得分:5)
我对这个问题的答案很简单。
#define isiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad ? YES : NO)
如果设备是iPad,则返回1,如果设备是iPod或iPhone,则返回0。
答案 1 :(得分:3)
您无法通过宏检查它,因为在编译期间会扩展宏。所以你需要在编译时知道设备类型。
如果要在运行时支持这两个设备,则需要检查设备类型并使用适当的常量集。
答案 2 :(得分:0)
#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 30200
UIDevice* thisDevice = [UIDevice currentDevice];
if(thisDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad)
{
// etc.
}
#endif