getBytes方法的Swift 3更改

时间:2016-06-29 11:02:31

标签: ios swift3 xcode8

我试图在swift 3中运行以下代码

 var values = [UInt8](count:data!.length, repeatedValue:0)
 data!.getBytes(&values, length:data!.length)

其中数据为'数据'数据类型(NSData根据swift 3指南更改为'数据')

我无法在Swift 3中运行上面的代码。编译器给出错误“参数重复值必须在参数之前”。同样的代码行在Swift 2.2中工作

解决方案是什么?

2 个答案:

答案 0 :(得分:33)

对于Swift3,只需使用以下内容:

let array = [UInt8](yourDataObject)

全部,伙计们!)

答案 1 :(得分:19)

这意味着在Swift 3中反转了参数顺序。

对于NSData:

var values = [UInt8](repeating:0, count:data!.length)
data.getBytes(&values, length: data!.length)

对于数据:

var values = [UInt8](repeating:0, count:data!.count)
data.copyBytes(to: &values, count: data!.count)