Can´;无法在iOS Swift中获取SecKey unsafemtablepointer
我在swift的一个项目中工作,涉及RSA加密,我遇到了如下指针问题: 我有一个全局Can´;无法在iOS Swift中获取SecKey unsafemtablepointer,ios,encryption,swift,rsa,unmanaged,Ios,Encryption,Swift,Rsa,Unmanaged,我在swift的一个项目中工作,涉及RSA加密,我遇到了如下指针问题: 我有一个全局var publicKey:SecKey?可选值,我需要获取指向它的unsafemtablepointer指针,这是SecKeyGeneratePair函数中所需的数据类型 我试图将指针定义为: var keyPointer = UnsafeMutablePointer<Unmanaged<SecKey>?>(publicKey!) “SecKey”没有名为“takeRetainedVa
var publicKey:SecKey?
可选值,我需要获取指向它的unsafemtablepointer
指针,这是SecKeyGeneratePair
函数中所需的数据类型
我试图将指针定义为:
var keyPointer = UnsafeMutablePointer<Unmanaged<SecKey>?>(publicKey!)
“SecKey”没有名为“takeRetainedValue”的成员。
如有任何帮助,我们将不胜感激尝试以下方法:
var publicKey: SecKey?
var privateKey: SecKey?
var publicKeyUnManaged:Unmanaged<SecKey>?
var privateKeyUnManaged:Unmanaged<SecKey>?
let dic:[String:String] = [kSecAttrKeyType:kSecAttrKeyTypeRSA, kSecAttrKeySizeInBits:"2048"]
SecKeyGeneratePair(dic, &publicKeyUnManaged, &privateKeyUnManaged)
publicKey = publicKeyUnManaged?.takeRetainedValue()
privateKey = privateKeyUnManaged?.takeRetainedValue()
var publicKey:SecKey?
var privateKey:SecKey?
var publicKeyUnManaged:非托管?
var privateKeyUnManaged:非托管?
让dic:[String:String]=[kSecAttrKeyType:kSecAttrKeyTypeRSA,kSecAttrKeySizeInBits:“2048”]
SecKeyGeneratePair(dic、&publicKeyUnManaged和&privateKeyUnManaged)
publicKey=publicKeyUnManaged?.takeRetainedValue()
privateKey=privateKeyUnManaged?.takeRetainedValue()
您不必手动创建unsafemtablepointer
。如中所述
当函数被声明为采用UnsafemeutablePointer参数时,它可以接受以下任一项:
- nil,作为空指针传递
- 不可配置的指针值
- 一种输入输出表达式,其操作数是类型为的存储左值,作为左值的地址传递
- 一个in-out[Type]值,作为指向数组开头的指针传递,并在调用期间延长生存期
var publicKey: SecKey?
var privateKey: SecKey?
var publicKeyUnManaged:Unmanaged<SecKey>?
var privateKeyUnManaged:Unmanaged<SecKey>?
let dic:[String:String] = [kSecAttrKeyType:kSecAttrKeyTypeRSA, kSecAttrKeySizeInBits:"2048"]
SecKeyGeneratePair(dic, &publicKeyUnManaged, &privateKeyUnManaged)
publicKey = publicKeyUnManaged?.takeRetainedValue()
privateKey = privateKeyUnManaged?.takeRetainedValue()
var publicKey:SecKey?
var privateKey:SecKey?
var publicKeyUnManaged:非托管?
var privateKeyUnManaged:非托管?
让dic:[String:String]=[kSecAttrKeyType:kSecAttrKeyTypeRSA,kSecAttrKeySizeInBits:“2048”]
SecKeyGeneratePair(dic、&publicKeyUnManaged和&privateKeyUnManaged)
publicKey=publicKeyUnManaged?.takeRetainedValue()
privateKey=privateKeyUnManaged?.takeRetainedValue()
您不必手动创建unsafemtablepointer
。如中所述
当函数被声明为采用UnsafemeutablePointer参数时,它可以接受以下任一项:
- nil,作为空指针传递
- 不可配置的指针值
- 一种输入输出表达式,其操作数是类型为的存储左值,作为左值的地址传递
- 一个in-out[Type]值,作为指向数组开头的指针传递,并在调用期间延长生存期
在这种情况下,我们可以使用第三个“In-out”表达式。对于Swift 2.1,它不适用于非托管,正确的版本是:
var publicKey: SecKey?
var privateKey: SecKey?
let dic:[String:String] = [kSecAttrKeyType:kSecAttrKeyTypeRSA, kSecAttrKeySizeInBits:"2048"]
SecKeyGeneratePair(dic, &publicKey, &privateKey)
对于Swift 2.1,它不适用于非托管,正确的版本是:
var publicKey: SecKey?
var privateKey: SecKey?
let dic:[String:String] = [kSecAttrKeyType:kSecAttrKeyTypeRSA, kSecAttrKeySizeInBits:"2048"]
SecKeyGeneratePair(dic, &publicKey, &privateKey)