应用程序崩溃 - dyld:未找到符号:_OBJC_CLASS _ $ _ UITraitCollection

时间:2014-06-12 02:43:23

标签: swift ios8 xcode6

dyld: Symbol not found: _OBJC_CLASS_$_UITraitCollection

我参考UITraitCollection的代码中唯一的地方是:

func loadImages(imageName: NSString) {
    var image: UIImage
    images = NSMutableArray(capacity: 7)
    for i in 0..7 {
        image = UIImage(named:"\(imageName)\(i).png", inBundle:nil, compatibleWithTraitCollection:nil)

        if (image != nil) {
            images.addObject(image)
        }
    }
}

2 个答案:

答案 0 :(得分:2)

UITraitCollection只是从ios8开始的Foundation框架的一部分。这个错误说的是你手机的操作系统(7.1.1)在它的库中没有UITraitCollection,这是真的,因为这个类只是ios8 Foundation.framework库的一部分。为了减少应用程序大小,Apple库都是在运行时动态加载的,因此它们不必与您的应用程序打包在一起,因此您的应用程序只能访问该特定iPhone上的ios7 Foundation.framework。如果您将iPhone升级到ios8,它应该可以正常工作。

答案 1 :(得分:0)

rvijay007的解释是正确的,但解决方案是部分的(您不必将设备升级到iOS 8!它支持向后兼容性)。这是正确的答案:

尝试重新添加Foundation.framework:

  1. 转到项目的目标
  2. 选择“常规”标签
  3. 在“Linked Frameworks a Libraries”下查找Foundation.framework,选择它并按下buttom上的减号(' - ')以删除此框架。
  4. 现在按下加号('+')并搜索Foundation.framework - 重新添加它,它应该可以修复你的崩溃。
  5. 希望它有效 - 它确实适合我。