我有一个项目使用 CoreImage 中提供的面部检测,该项目最初是在 Xcode 4.6.3 中使用 iOS6 SDK 开发的,部署目标为 5.1。随着 iOS7 的发布,我更新到 Xcode5 和 iOS7 SDK,将部署目标保持为 5.1。
这很好,直到我在 Xcode5 中添加了一个新类,该类引用了 CIFaceFeature 对象中的属性,特别是hasLeftEyePosition
. 代码在运行 iOS7.02 的 iPhone5S 和运行 iOS7.02 的 iPod 第 5 代上构建和运行得很好,但是当我尝试在运行 iOS6.1 的 iPhone4 上调试时运行它时,我在设备上看到了启动画面,然后控制台中的以下输出:
dyld: Symbol not found: _OBJC_IVAR_$_CIFaceFeature.hasLeftEyePosition
Referenced from: /var/mobile/Applications/...
Expected in: /System/Library/Frameworks/CoreImage.framework/CoreImage
in /var/mobile/Applications/...
我已经验证了 CoreImage.framework 包含在链接中。关于这个错误的奇怪之处在于,我在 Xcode 4.6.3 中添加的文件中访问代码库中其他地方的 CIFaceFeature 对象的属性。
我还验证了如果我注释掉新添加hasLeftEyePosition
的访问应用程序的代码,在 iOS6.1 iPhone4 上运行良好。
有没有人遇到过这种类型的错误?我需要更改新添加的文件以使其链接到正确的框架吗?我在这里有点抓住稻草,因为我看不出问题出在哪里,而且我在代码中的其他地方访问完全相同的属性也没有问题。