我想用Swift进行RSA加密,但在这一行中我遇到了一个奇怪的错误:
var publicKey:SecKeyRef = KeyFormatter.getPublicKeyReference("com.apple.sample.publickey")
通常,在object中,它是可以的,“getPublicKeyReference”方法返回一个SecKeyRef对象。但是,当我按照Swift语法在Swift文件中键入它时,它会给出“非托管不可转换为SecKey”的错误。
KeyFormatter类仍然是用Objective编写的。因此,当我调用此方法(桥接标头)时,返回类型在Swift中的表示方式是不同的?如果是这样,我怎样才能克服这个问题呢?
发布于 2014-07-22 17:38:05
参见使用Swift与Cocoa和Objective -> 使用Cocoa数据类型 -> Scroll一直到“核心基础”。
因为当前没有对特定的API进行内存管理语义审计,因此您需要根据该特定方法的内存管理语义调用takeUnretainedValue()
或takeRetainedValue()
。
https://stackoverflow.com/questions/24890632
复制相似问题