如何处理`withUnsafeBytes`已弃用警告?

问题描述 投票:-3回答:1

以下代码我不赞成使用警告,

_ = data.withUnsafeBytes {
    _ = CC_SHA256($0, CC_LONG(data.count), &digest)
}

'withUnsafeBytes'已过时:改用withUnsafeBytes<R>(_: (UnsafeRawBufferPointer) throws -> R) rethrows -> R

我该如何处理?

更新

根据马丁的建议,我在code下面使用了Swift-5,

func sha256(data : Data) -> Data {
    var hash = [UInt8](repeating: 0,  count: Int(CC_SHA256_DIGEST_LENGTH))
    data.withUnsafeBytes {
        _ = CC_SHA256($0.baseAddress, CC_LONG(data.count), &hash)
    }
    return Data(hash)
}

甚至甚至给编译器带来错误,

类型'UnsafePointer <_>'的值没有成员'baseAddress'

Update2

Martins solution在Xcode 11.3.1中正常工作。但是,它在Xcode 11中不起作用。

swift deprecated sha256
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.