我的 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:]吗?
还是我有这个倒退?
任何建议将不胜感激。