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:]か?

hereを削除して、で使用されCGImageRelease( cgImage );た後に追加する必要がありますか?cgImage[_delegate sessionWithPresentedFrame:]

それとも私はこれを逆に持っていますか?

アドバイスをいただければ幸いです。

4

1 に答える 1

3

安全。メソッド sessionWithPresentedFrame: が画像を保持する必要がある場合は、保持します。コードのこの部分の問題ではありません。

于 2013-05-01T17:54:15.697 に答える