Swift 架构i386的未定义符号:“_OBJC“U类”“U$”SecIdentity“;

Swift 架构i386的未定义符号:“_OBJC“U类”“U$”SecIdentity“;,swift,undefined-symbol,Swift,Undefined Symbol,Xcode不允许我编译以下代码: func getIdentity(keychainArray: NSArray) -> SecIdentity? { let dict = keychainArray[0] as Dictionary<String,AnyObject> let key = kSecImportItemIdentity.takeRetainedValue() return dict[key] as SecIdentity? } 我测试了

Xcode不允许我编译以下代码:

func getIdentity(keychainArray: NSArray) -> SecIdentity? {
    let dict = keychainArray[0] as Dictionary<String,AnyObject>
    let key = kSecImportItemIdentity.takeRetainedValue()
    return dict[key] as SecIdentity?
}
我测试了一些东西,发现SecIdentity是一个类型别名。
我发现,当我尝试将某些内容强制转换为类型别名时,编译器总是生成这些错误消息。如果我将其强制转换为类(例如NSObject/NSDictionary),它确实可以工作,但CFDictionary也会导致错误。这有帮助吗?

是安全框架的一部分,所以听起来您需要针对它进行链接。

您是针对
安全性进行链接的。框架
?是的,请参阅下面的注释。我想您的意思是“目标常规”选项卡中的“链接的框架和库”。我已经尝试添加安全框架。没有成功。我是否也必须将它们链接到其他地方?@user3211074不,应该这样做。没有成功。我使用的是Xcode 6 Beta iOS 8.0和OS X 10.10。
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)