调用中参数'options'缺少参数

时间:2014-07-25 03:38:15

标签: swift

尝试编译以下代码我得到上述错误:

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

我可以说,CIImage有一个初始化程序只接受一个CVImageBuffer(它有另一个初始化程序,也接受一个选项参数。如果我尝试提供它,我得到一个错误,我有一个额外的参数叫做options,blurgh)

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

很简单!事实证明问题是我没有通过正确的引用。

let ref = CMSampleBufferGetImageBuffer(sampleBuffer)实际上将ref声明为Unmanaged<>结构值,这意味着尚未正确注释API以指示ARC应解释哪种保留/未保留关系。它基本上被认为是一个松散的经典。

所以我要做的就是明确地告诉编译器给我一个没有保留的版本,然后代码运行得很好。

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