2016-10-05 95 views
0
1. let context = CGContext(...) 
2. context.draw(...) 
3. let buffer = UnsafeMutablePointer<UInt32>(context.data) // error here 

使用斯威夫特3,第3行會產生一個錯誤,指出:UnsafeMutablePointer初始化

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

有沒有辦法來UnsafeMutableRawPointer轉換爲任何合適的類型UnsafeMutablePointer接受作爲在初始化參數?

順便說一句,UnsafeMutablePointer的類參考可以找到here

回答

0

我想這會做初始化。

let ptr = context.data 
    let data = ptr!.assumingMemoryBound(to: UnsafeMutablePointer<UInt32>.self).pointee 
    let pixelBuffer = UnsafeMutablePointer<UInt32>(data)