我在我的Appdelegate定义宏,这是我的代码
let IPHONE = UIDevice.currentDevice().userInterfaceIdiom == .Phone
let IPAD = UIDevice.currentDevice().userInterfaceIdiom == .Pad
#if IPHONE
let LEFT_DRAWER_HEIGHT : CGFloat = 270.0
#elseif IPAD
let LEFT_DRAWER_HEIGHT : CGFloat = 404.0
#else
let LEFT_DRAWER_HEIGHT : CGFloat = 404.0
#endif
但它总是返回LEFT_DRAWER_HEIGHT = 404.0,而不是我在iphone设备上运行。什么是错误?任何人都可以搞清楚。
答案 0 :(得分:2)
你有iPhone和iPad的单独目标吗?您是否在每个目标中定义了这些常量?
#if
是一个编译时条件,所以如果你有一个通用应用程序,编译器在编译时无法知道该应用程序将运行什么设备。您应该使用正常的if条件。