我的iOS应用程序中有Obj-C代码:
CGImageRef cgImage = CGImageRetain([self imageFromSampleBuffer:sampleBuffer]);
if(_delegate) {
[_delegate sessionWithPresentedFrame:[UIImage imageWithCGImage:cgImage]];
}
CGImageRelease( cgImage );
我从博客中复制了这段代码,我需要了解一下内存管理(我目前没有)。所以我希望有人可以帮助我。
现在,cgImage
显然已被保留。然后传递给[_delegate sessionWithPresentedFrame:]
。
然后cgImage
被释放。我的问题是,在这里发布cgImage
是否安全。由于我将其传递给[_delegate sessionWithPresentedFrame:]
,因此在[_delegate sessionWithPresentedFrame:]
内使用时会释放它吗?
我应该删除此处的CGImageRelease( cgImage );
并在cgImage
完成[_delegate sessionWithPresentedFrame:]
之后添加吗?
或者我有倒退吗?
任何建议都将不胜感激。
答案 0 :(得分:3)
很安全。如果方法sessionWithPresentedFrame:确实需要保留图像,那么它会做。这部分代码不是我们的问题。