我想在Swift中进行RSA加密,但我在这一行中遇到了一个奇怪的错误:
var publicKey:SecKeyRef = KeyFormatter.getPublicKeyReference("com.apple.sample.publickey")
通常,在Objective-C中它没关系,'getPublicKeyReference'方法返回一个SecKeyRef对象。但是当我在Swift文件中根据Swift语法键入它时,它给出了错误“Unmanaged is not convertible to SecKey”。
KeyFormatter类仍然用Objective-C编写。所以当我调用这个方法(桥接头)时,返回类型在Swift中的表示方式不同?如果是这样,我该如何克服这个问题?
答案 0 :(得分:1)
参见将Swift与Cocoa和Objective-C一起使用 - > Working with Cocoa Data Types - >一直向下滚动到“核心基础”。
由于当前未针对内存管理语义审核该特定API,因此您需要根据该特定方法的内存管理语义调用takeUnretainedValue()
或takeRetainedValue()
。