gpt4 book ai didi

macos - 如何在 swift 中导入 DER 证书?

转载 作者:搜寻专家 更新时间:2023-10-30 23:11:25 24 4
gpt4 key购买 nike

所以似乎有很多方法发生了变化,破坏了我当前代码库中的一些东西。我目前收到以下错误:

Cannot convert the expression's type '(CFAllocator!, data: @lvalue NSData)' to type 'CFData!'

相关代码如下:

let mainbun = NSBundle.pathForResource("mainkey", ofType: "der", inDirectory: "/myapppath")
var key: NSData = NSData(base64EncodedString: mainbun!, options: nil)!
var turntocert: SecCertificateRef = SecCertificateCreateWithData(kCFAllocatorDefault, data: key)

我让它与桥接头一起使用,但我仍然希望能够直接在 swift 中创建证书引用。


更新:这行得通

var bundle: NSBundle = NSBundle.mainBundle()
var mainbun = bundle.pathForResource("keyfile", ofType: "der")
var key: NSData = NSData(contentsOfFile: mainbun!)!
var turntocert: SecCertificateRef =
SecCertificateCreateWithData(kCFAllocatorDefault, key).takeRetainedValue()

最佳答案

在 Swift 中,SecCertificateCreateWithData 返回一个 Unmanaged 类型。您需要使用 takeRetainedValue() 获取非托管引用的值。

let mainbun = NSBundle.pathForResource("mainkey", ofType: "der", inDirectory: "/myapppath")
var key: NSData = NSData(base64EncodedString: mainbun!, options: nil)!
var turntocert: SecCertificateRef =
SecCertificateCreateWithData(kCFAllocatorDefault, key).takeRetainedValue()

您遇到的核心问题是将 CFData 转换为 NSDataSee this question

关于macos - 如何在 swift 中导入 DER 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27477150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com