<unknown>:0:错误:IR生成失败:程序太聪明:变量与现有符号碰撞OBJC_CLASS _ $ _ UIDevice

时间:2015-10-19 18:08:26

标签: ios xcode swift

未知:0:错误:IR生成失败:程序太聪明:变量与现有符号碰撞OBJC_CLASS _ $ _ UIDevice

这是Xcode 7.0.1引发的错误消息。我不知道,我做错了让Xcode抛出这个错误。当我尝试在swift中构建项目时会发生此错误。

enter image description here

2 个答案:

答案 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