2016-09-16 8 views
0

は、私は、コンパイラのエラーを取得する:なぜこれが動作しないSwift 3の不透明なポインタから型付きポインタを作成する方法は?スウィフト3への変換

let imageRef = myUIImage.cgImage! 
let context = CGContext(...)! 
let rect = CGRect(...) 
context.draw(imageref, in: rect) 

var data = context.data 
var dataType = UnsafeMutablePointer<UInt8>(data) //Throws the error 

Cannot invoke initializer for type 'UnsafeMutablePointer' with an argument list of type '(UnsafeMutableRawPointer?)'

不透明ポインタから入力されたポインタを作成しようとすると?

+0

[UnsafeMutableRawPointerのバイトを取得する方法?](http://stackoverflow.com/questions/38983277/how-to-get-bytes-out-of-an-unsafemutablerawpointer) –

答えて

0

content.dataは、UnsafeMutableRawPointerを返します。これは、型指定されたポインタに変換することbindMemoryassumingMemoryBoundのメソッドがあります。

let dataType = data.bindMemory(to: UInt8.self, capacity: n) // UnsafeMutablePointer<UInt8> 

私が何であるかをnテストする機会を持っていないが、私はそれがこのようなものになります疑い:比較

n = width * height * bitsPerPixel/8 
関連する問題