我試圖用Swift重寫RNFrostedSidebar但我遇到了一個問題。如何在vImageBoxConvolve_ARGB8888()中使用Swift使用UnsafePointer?
在行99 RNFrostedSidebar.m〜101,
func vImageBoxConvolve_ARGB8888(_ src: UnsafePointer<vImage_Buffer>,
_ dest: UnsafePointer<vImage_Buffer>,
_ tempBuffer: UnsafeMutablePointer<Void>,
_ srcOffsetToROI_X: vImagePixelCount,
_ srcOffsetToROI_Y: vImagePixelCount,
_ kernel_height: UInt32,
_ kernel_width: UInt32,
_ backgroundColor: UnsafeMutablePointer<UInt8>,
_ flags: vImage_Flags) -> vImage_Error
功能vImageBoxConvolve_ARGB8888(...)
需要UnsafePointer,我試圖用effectInBuffer
或&effectInBuffer
,但沒有奏效。
使用effectInBuffer
作爲參數會導致'vImage_Buffer' is not convertible to 'UnsafePointer<vImage_Buffer>'
錯誤。但在Using Swift with Cocoa and Objective-C,它似乎是有效的。
我怎麼能這樣做?
你能告訴你如何聲明'effectInBuffer'和'effectOutBuffer'嗎?只要你聲明它們是可變的,使用'&'前綴就可以工作。 – 2014-10-07 01:26:23
@NateCook像這樣:'讓effectInBuffer = vImage_Buffer(數據:CGBitmapContextGetData(effectInContext),高度:CGBitmapContextGetHeight(effectInContext),寬度:CGBitmapContextGetWidth(effectInContext),rowBytes:CGBitmapContextGetBytesPerRow(effectInContext))' – WildCat 2014-10-08 14:08:10