2017-04-30 2 views
2

Swift 3.1では、UnsafeMutablePointer.initialize(from :)は推奨されていません。 Xcodeでは、代わりにUnsafeMutableBufferPointer.initialize(from :)を使用することを示唆しています。私は次のようなコードブロックを持っています:Swift 3.1では、UnsafeMutablePointer.initialize(from :)は非推奨です

let pointer = UnsafeMutablePointer<UInt8>.allocate(capacity: 64) 
pointer.initialize(from: repeatElement(0, count: 64)) 

このコードでは、非推奨のためコンパイル時の警告が表示されます。そこで、私はそれを次のように変更します:

let pointer = UnsafeMutablePointer<UInt8>.allocate(capacity: 64) 
let buffer = UnsafeMutableBufferPointer(start: pointer, count: 64) 
_ = buffer.initialize(from: repeatElement(0, count: 64)) 

これは正しい方法ですか?私はちょうど私が正しくそれをやっていることを確認したかった。

答えて

2

それは正しいですが、あなたは割り当て、その が集まりなので、まだ役立つことができ

let pointer = UnsafeMutablePointer<UInt8>.allocate(capacity: 64) 
pointer.initialize(to: 0, count: 64) 

バッファポインタのビューを作成すると、わずかにシンプルなメモリを初期化することができ、count性を有し、することができ

let buffer = UnsafeMutableBufferPointer(start: pointer, count: 64) 

for byte in buffer { 
    // ... 
} 

ただし、これはメモリの初期化方法とは関係ありません。

関連する問題