wei_2016 2019-07-03 16:18 采纳率: 0%
浏览 546

IOS swift5 withUnsafeMutableBytes 怎么改?

IOS项目,升级到了swift5,去警告的时候碰到了个问题
函数是为了生成安全的随机数
下面是代码
var data = Data(count: length)
let result = data.withUnsafeMutableBytes {
return SecRandomCopyBytes(kSecRandomDefault, length, $0)
}
各位大神,帮帮小弟,怎么修改合适啊?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-10 17:47
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Swift 5中,Data类型的构造函数不再支持withUnsafeMutableBytes。因此,你需要使用allocatingUninitializedMemory或者init(capacity:)来创建一个空的数据对象。

    以下是一个例子:

    var data = Data()
    
    data.append(_ : 1)
    

    或者如果你想要一个初始化为全0的数据:

    var data = Data(capacity: 16)
    

    请注意,在iOS中,Data类型不能直接被分配内存。你必须首先将其转换为字节数组(例如通过allocatingUninitializedMemoryinit(capacity:))然后才能对其进行操作。

    另外,确保你的编译器版本支持新的数据结构,否则可能需要考虑迁移至更早的Swift版本。

    评论

报告相同问题?