gpt4 book ai didi

ios - Swift 将数据转换为 UnsafeMutablePointer

转载 作者:搜寻专家 更新时间:2023-11-01 05:51:58 34 4
gpt4 key购买 nike

我正在从 swift 调用 objective-c 类中的函数。

-(char *)decrypt:(char *)crypt el:(int)el{}

当从 swift 调用这个函数时,它要求一个 UnsafeMutablePointer<Int8>作为参数 'crypt'

的值

'crypt' 的值来自服务器,它是一个 base64 编码的字符串。所以我对该字符串进行解码并得到一个数据对象。

let resultData = Data(base64Encoded: base64String)

现在我需要将这些数据传递给上面提到的函数。我试图将此数据对象转换为 UnsafeMutablePointer<Int8>

resultData?.withUnsafeBytes { (u8Ptr: UnsafeMutablePointer<Int8>) in
let decBytes = tea?.decrypt(u8Ptr , el: el)}

但它没有编译。给出以下错误

'UnsafeMutablePointer' is not convertible to 'UnsafePointer<_>'

我对 objective-c 知之甚少。那么谁能帮我把这个参数传递给 objective-c 函数。

最佳答案

你必须将 UnsafeMutablePointer 更改为 UnsafePointer

不安全指针

resultData?.withUnsafeBytes {(bytes: UnsafePointer<CChar>)->Void in
//Use `bytes` inside this closure

}

UnsafeMutablePointer

 var data2 = Data(capacity: 1024)
data2.withUnsafeMutableBytes({ (bytes: UnsafeMutablePointer<UInt8>) -> Void in
//Use `bytes` inside this closure

})

关于ios - Swift 将数据转换为 UnsafeMutablePointer<Int8>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50285026/

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