我们将SDK更新到iOS 8.3,结果我们的iPad检测方法突然失效了:
我正在使用:
+ (BOOL) isiPad
{
#ifdef UI_USER_INTERFACE_IDIOM
return UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad;
#endif
return NO;
}
ifdef
代码块永远不会进入,因此return NO;
总是运行。 如何检测设备是否为iPad而不使用UI_USER_INTERFACE_IDIOM()
?
我正在使用:
- Xcode 6.3(6D570)
- iOS 8.2(12D508) - 使用iOS 8.3编译器编译
- 部署:目标设备系列:iPhone / iPad
- Mac OS X:Yosemite(10.10.3)
- Mac:MacBook Pro(MacBookPro11,3)
UI_USER_INTERFACE_IDIOM
,然后选择“查找定义”。它显示了什么? - trojanfoeUIKit
文档也显示它仍然有效。我猜你需要展示更多的代码(即使用该方法的代码)。 - trojanfoe#ifdef UI_USER_INTERFACE_IDIOM
不应该是true
吗? - Ky -userInterfaceIdiom
的文档中却写着“仅支持 iOS 3.2 及以上版本”。我会按照 Apple 的指示使用userInterfaceIdiom
。 - trojanfoe#ifdef UI_USER_INTERFACE_IDIOM
时,它总是返回0。但是当我使用UI_USER_INTERFACE_IDIOM
本身时,它返回正确的值,即1。你知道这是为什么吗?:( - KarenAnne