swift3の次の行でエラーが発生します。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)
'UnsafeMutablePointer<Bytef>'
タイプ '(UnsafeMutableRawPointer)' の引数リストを持つタイプの初期化子を呼び出すことはできません
swift3の次の行でエラーが発生します。
out = UnsafeMutablePointer<Bytef>(data.mutableBytes)
'UnsafeMutablePointer<Bytef>'
タイプ '(UnsafeMutableRawPointer)' の引数リストを持つタイプの初期化子を呼び出すことはできません
あなたが求めていることを 100% 理解しているとは言えませんが、swift3 ではデータ ポインターの処理方法が多少変更されています。
Swift2 でデータ ストリームから実際のバイトにアクセスしたい場合、データを安全でない変更可能なポインターにキャストし[UInt8]
、データ ストリーム内のすべてのバイトを直接参照する配列を指す、いくつかのファンキーなポインター操作を行います。
あなたが尋ねていることから、あなたは過去に似たようなことをしようとしていたようです。
withUnsafeBytes
これで、 との 2 つのコマンドができwithUnsafeMutableBytes
ました。Swift2では、バイトを取得してポインター配列にキャストすることでデータを操作していました(あなたがしているように見えるものと同様です)。
Swift 3 では、次のようなことができるようになりました。
return data.withUnsafeBytes { (bytes: UnsafePointer<UInt8>) -> Bool in
return 1 == Int((bytes[1] & 0x2) >> 1)
}
またはこれ:
rawData.withUnsafeMutableBytes {
(bytes: UnsafeMutablePointer<UInt8>) -> Void in
bytes[0] = newValue.rawValue
}
これはあなたが探しているものですか?