1

Swift 3 に変換すると、コンパイラ エラーが発生します。

タイプ '(UnsafeMutableRawPointer?)' の引数リストでタイプ 'UnsafeMutablePointer' の初期化子を呼び出すことはできません

不透明なポインターから型付きポインターを作成しようとすると、次のようになります。

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

これが機能しないのはなぜですか?

4

1 に答える 1

0

content.dataを返しますUnsafeMutableRawPointer。型付きポインターに変換するbindMemoryおよびassumingMemoryBoundメソッドがあります。

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

何が何であるかをテストする機会はありませんが、次のnようなものになると思います。

n = width * height * bitsPerPixel / 8
于 2016-09-16T21:05:26.467 に答える