首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用运行在iOS6.1设备上的Xcode 5在CIFaceFeature中使用"dyld:符号未找到“

使用运行在iOS6.1设备上的Xcode 5在CIFaceFeature中使用"dyld:符号未找到“
EN

Stack Overflow用户
提问于 2013-10-17 00:27:30
回答 1查看 259关注 0票数 0

我有一个使用CoreImage中提供的面部检测的项目,这个项目最初是在Xcode 4.6.3中使用部署目标为5.1的iOS6 SDK开发的。随着iOS7的发布,我更新为Xcode5和iOS7 SDK,将部署目标保持为5.1。

这很好,直到我在Xcode5中添加了一个新类,它引用了CIFaceFeature对象中的属性,特别是hasLeftEyePosition。代码在运行iOS7.02的iPhone5S和运行iOS7.02的iPod第5代上运行良好,但是当我试图在运行iOS6.1的iPhone4上调试时,会在设备上获得启动屏幕,然后在控制台中得到以下输出:

代码语言:javascript
复制
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上运行良好。

有人有这种错误的经验吗?是否有新添加的文件的设置,我需要更改,以使其链接到正确的框架?我在这里有点抓狂,因为我不知道问题是什么,而且我在代码的其他地方访问完全相同的属性,没有问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-17 00:37:49

您确定您引用的是属性而不是实例变量吗?您所看到的错误是由于核心图像的iOS 6版本中缺少一个实例变量。我可以在iOS 7标题中看到,在iOS 6中没有声明ivar。

如果您正在执行feature->hasLeftEyePosition或类似操作,您将访问实例变量,通常应该将其视为不应该直接使用的实现细节。如果您正在创建一个子类,只需说hasLeftEyePosition,也可以。您需要使用[feature hasLeftEyePosition]feature.hasLeftEyePosition来使用该属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19416248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档