架构 i386 的未定义符号:“_OBJC_CLASS_$_SecIdentity”
Posted
技术标签:
【中文标题】架构 i386 的未定义符号:“_OBJC_CLASS_$_SecIdentity”【英文标题】:Undefined symbols for architecture i386: "_OBJC_CLASS_$_SecIdentity" 【发布时间】:2014-06-09 14:39:00 【问题描述】:Xcode 不允许我编译这段代码:
func getIdentity(keychainArray: NSArray) -> SecIdentity?
let dict = keychainArray[0] as Dictionary<String,AnyObject>
let key = kSecImportItemIdentity.takeRetainedValue()
return dict[key] as SecIdentity?
编译器退出并出现以下错误:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SecIdentity", referenced from:
__TFC9messenger10Connection19streamOpenCompletedfS0_FT_T_ in Connection.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我测试了一些东西,发现 SecIdentity 是一个类型别名。 我发现当我尝试将某些内容转换为类型别名时,编译器总是会生成这些错误消息。如果我将它转换为一个类(例如 NSObject / NSDictionary),它确实可以工作,但 CFDictionary 也会导致错误。这有帮助吗?
【问题讨论】:
你链接的是Security.framework
吗?
是的,请看下面的评论
【参考方案1】:
SecIdentity and friends 是安全框架的一部分,所以听起来你需要链接它。
【讨论】:
我猜你的意思是“目标常规”选项卡中的“链接框架和库”。我已经尝试添加安全框架。没有成功。我还必须将它们链接到其他地方吗? @user3211074 不,那应该这样做。 没有成功。我正在使用 Xcode 6 Beta ios 8.0 和 OS X 10.10。以上是关于架构 i386 的未定义符号:“_OBJC_CLASS_$_SecIdentity”的主要内容,如果未能解决你的问题,请参考以下文章
架构 i386 的未定义符号:“_SCNetworkReachabilitySetCallback”