我已經實現了這個代碼來定義我的常數: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