未知:0:错误:IR生成失败:程序太聪明:变量与现有符号碰撞OBJC_CLASS _ $ _ UIDevice
这是Xcode 7.0.1引发的错误消息。我不知道,我做错了让Xcode抛出这个错误。当我尝试在swift中构建项目时会发生此错误。
答案 0 :(得分:6)
用于常量文件。你也可以使用这样的东西
let IS_IPAD = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Pad)
let IS_IPHONE = (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiom.Phone)
在Apple文档中,我们可能会发现这个
提供UI_USER_INTERFACE_IDIOM()函数时使用 部署到小于3.2的iOS版本。如果最早的 您要部署的iPhone / iOS版本是3.2或 更大,您可以直接使用 - [UIDevice userInterfaceIdiom]。
这就是我们得到错误
的原因IR生成失败:程序太聪明:变量碰撞了 现有符号OBJC_CLASS _ $ _ UIDevice
要解决此问题,只需使用此代码替换
即可let IS_IPAD = UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad
let IS_IPHONE = UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Phone
享受:)
答案 1 :(得分:0)
使用结构的静态属性,如下所示:
struct Constants {
static let iOSVersion = UIDevice.currentDevice().systemVersion
}
现在,您可以在程序中的任何位置说Constants.iOSVersion
。