#if宏快速检查设备

时间:2015-09-15 05:29:22

标签: swift

我在我的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设备上运行。什么是错误?任何人都可以搞清楚。

1 个答案:

答案 0 :(得分:2)

你有iPhone和iPad的单独目标吗?您是否在每个目标中定义了这些常量?

#if是一个编译时条件,所以如果你有一个通用应用程序,编译器在编译时无法知道该应用程序将运行什么设备。您应该使用正常的if条件。