Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 缺少参数'的参数;选项';随时待命_Swift - Fatal编程技术网

Swift 缺少参数'的参数;选项';随时待命

Swift 缺少参数'的参数;选项';随时待命,swift,Swift,尝试编译以下代码时,我遇到上述错误: let ref = CMSampleBufferGetImageBuffer(sampleBuffer) let image = CIImage(CVImageBuffer: ref) 就我所知,CIImage有一个只接受CVImageBuffer的初始值设定项(它还有另一个初始值设定项,也接受一个options参数。如果我尝试提供它,我会得到一个错误,我有一个额外的参数叫做options,Blugh) 有没有办法解决这个问题?很简单!事实证明,问题在于我

尝试编译以下代码时,我遇到上述错误:

let ref = CMSampleBufferGetImageBuffer(sampleBuffer)
let image = CIImage(CVImageBuffer: ref)
就我所知,CIImage有一个只接受CVImageBuffer的初始值设定项(它还有另一个初始值设定项,也接受一个options参数。如果我尝试提供它,我会得到一个错误,我有一个额外的参数叫做options,Blugh)


有没有办法解决这个问题?

很简单!事实证明,问题在于我没有传递正确的参考信息

let ref=CMSampleBufferGetImageBuffer(sampleBuffer)
实际上将
ref
声明为一个
非托管的
结构值,这意味着API没有被正确注释以指示ARC应该解释哪种类型的保留/未保留关系。它基本上被认为是一个松散的佳能

所以我要做的就是显式地告诉编译器给我一个未恢复的版本,然后代码工作得很好

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