2014-07-25 167 views
0

試圖編譯下面的代碼,我得到上述錯誤:缺少參數

let ref = CMSampleBufferGetImageBuffer(sampleBuffer) 
let image = CIImage(CVImageBuffer: ref) 

近,我可以告訴,CIImage有一個初始化的是隻需要一個CVImageBuffer(它還有另一個如果我嘗試提供,我得到一個錯誤,我有額外參數稱爲選項,模糊)

任何想法如何解決這個問題?

回答

0

很簡單!原來,問題是我沒有經過適當的那種的參考英寸

let ref = CMSampleBufferGetImageBuffer(sampleBuffer)實際上聲明refUnmanaged<>結構值,這意味着該API沒有正確註釋,指明什麼樣的ARC應該解釋的保留/不保留關係。它基本上被認爲是一個鬆散的佳能。

所以我所要做的就是明確地告訴編譯器給我一個不存在的版本,然後代碼很好用。

let ref : CVImageBufferRef = CMSampleBufferGetImageBuffer(sampleBuffer).takeUnretainedValue() 
let image = CIImage(CVImageBuffer: ref)