2016-03-03 30 views
1

我有下面的代碼,在客觀C.轉換OBJ-C代碼,SWIFT 2塊問題

[pixelData processPixelsWithBlock:^(JGPixel *pixel, int x, int y) { 

}]; 

現在,對我來說,相當於迅速將

pixelData.processPixelsWithBlock({(pixel: JGPixel, x: Int, y: Int) -> Void in 

}) 
然而

,即拋出錯誤

無法將類型'(JGPixel,Int,Int) - > Void'的值轉換爲期望的參數類型'((UnsafeMutablePointer,Int32,Int32) - > Void)!'

任何人都可以幫助解釋我哪裏去錯了,我怎麼可以瞭解更多關於這個錯誤。謝謝!

+0

JGPixel是Obj-C中的一個類還是一個結構? –

回答

1

您需要使用withUnsafeMutablePointer函數記錄here。一些沿線:

var pixel: JGPixel = // whatever 
withUnsafeMutablePointer(&pixel, { (ptr: UnsafeMutablePointer<JGPixel>) -> Void in 
    pixelData.processPixelsWithBlock({(ptr, x: Int, y: Int) -> Void in 

    }) 
}) 

編輯:只是意識到我忘了把ptr正確地傳遞給函數。固定在上面。

+0

嗨。這似乎是在正確的軌道上,但現在它引發錯誤'變量在其自己的初始值使用' - 我明白,它是抱怨,因爲我使用&像素,在我聲明它的同一行 - 我如何解決這個問題?謝謝! – crashlog