如何在Swift中使用"CFRetain(sampleBuffer)"和"CFRelease(sampleBuffer)"?
CFRetain is unavailable: Core Foundation objectes are automatically memory managed.
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection
{
[self appendVideoSampleBuffer:sampleBuffer];
}
- (void)appendVideoSampleBuffer:(CMSampleBufferRef)sampleBuffer
{
dispatch_async( _writingQueue, ^{
CFRetain(sampleBuffer);
[_videoInput appendSampleBuffer:sampleBuffer];
CFRelease(sampleBuffer);
});
}
Run Code Online (Sandbox Code Playgroud)
如果需要在此方法范围之外引用CMSampleBuffer对象,则必须CFRetain它,然后在完成后再发送它.(Apple文件)