非托管<seckey>不可转换为SecKey </seckey>

时间:2014-07-22 14:49:48

标签: objective-c encryption swift rsa

我想在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中的表示方式不同?如果是这样,我该如何克服这个问题?

1 个答案:

答案 0 :(得分:1)

参见将Swift与Cocoa和Objective-C一起使用 - &gt; Working with Cocoa Data Types - &gt;一直向下滚动到“核心基础”。

由于当前未针对内存管理语义审核该特定API,因此您需要根据该特定方法的内存管理语义调用takeUnretainedValue()takeRetainedValue()