0

我的 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:]吗?

还是我有这个倒退?

任何建议将不胜感激。

4

1 回答 1

3

这是安全的。如果方法 sessionWithPresentedFrame: 确实需要保留图像,那么它会这样做。这部分代码不是我们的问题。

于 2013-05-01T17:54:15.697 回答