我已经实现了这个代码来定义我的常数:Objective-C的预处理指令发出
#ifdef UI_USER_INTERFACE_IDIOM
#define IS_IPAD() (UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad)
#else
#define IS_IPAD() (false)
#endif
#if (IS_IPAD)
CGFloat const scrollSizeWidth = 768.0f;
CGFloat const scrollSizeHeight = 1004.0f;
#else
CGFloat const scrollSizeWidth = 320.0f;
CGFloat const scrollSizeHeight = 460.0f;
#endif
但它总是显示我的变量320.0f和460.0f。
UPDATE: 作为K3A用户发现UI_USER_INTERFACE_IDIOM并不适用于iOS 8.3工作,因为它不是不再是一个定义它是一个静态的内联。
检查这个答案还有: link
#ifdef UI_USER_INTERFACE_IDIOM在Xcode 6.3+中被破坏,因为它不再是预处理器定义 – k3a 2015-04-26 14:44:50
@ k3a哦,shooot,真的吗?我还没有检查过它 – 2015-04-26 16:22:38
是的。我注意到它是因为我的应用程序在使用Xcode 6.3+编译时加载了iPhone笔尖。下面是符号的新定义:静态内嵌UIUserInterfaceIdiom UI_USER_INTERFACE_IDIOM(){ 返回([[的UIDevice currentDevice] respondsToSelector:@selector(userInterfaceIdiom)] [[的UIDevice currentDevice] userInterfaceIdiom]: UIUserInterfaceIdiomPhone); } – k3a 2015-04-26 16:59:31