web-dev-qa-db-ja.com

Swift getBytesメソッドの3つの変更

Swift 3で以下のコードを実行しようとしました

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

ここで、データは 'Data'データタイプです(NSDataはSwift 3ガイドラインに従って 'Data'に変更されます)

Swift 3.で上記のコードを実行できません。コンパイラーは、「引数の繰り返し値は引数の前になければなりません」というエラーを出します。 Swift 2.2でも同じコード行が機能していました

解決策は何ですか?

15
iDev

Swift3の場合は、次を使用します。

let array = [UInt8](yourDataObject)

それだけです、皆さん!)

35
sVd

これは、引数の順序が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)
19
ayaio