2017-01-01 8 views
0

Swift 2コードを最新の構文(Swift 3)に変換しようとしています。Swift conversion:ERROR - UnsafeMutablePointer

Cannot invoke initializer for type 'UnsafeMutablePointer<CUnsignedChar>' with an argument list of type '(UnsafeMutableRawPointer!)

スウィフト2コード::私は、次のエラー受け付けております

let rawData = UnsafeMutablePointer<CUnsignedChar>(calloc(height * width * 4, Int(sizeof(CUnsignedChar)))) 

を誰かが私には、この変換の構文の問題を解決する助けてくださいことはできますか?

答えて

1

callocは、「生ポインタ」(Cではvoid *のSwift相当)を返します。

let rawData = UnsafeMutablePointer<CUnsignedChar>.allocate(capacity: width * height) 
rawData.initialize(to: 0, count: width * height) 
// ... 

rawData.deinitialize() 
rawData.deallocate(capacity: width * height) 
:また UnsafeMutablePointerallocate()メソッドを使用

let rawData = calloc(width * height, MemoryLayout<CUnsignedChar>.stride).assumingMemoryBound(to: CUnsignedChar.self) 

: あなたはassumingMemoryBoundで入力されたポインタに変換することができます

関連する問題