2009-03-20 15 views
3

私はCGImageCreateWithImageInRect()を使用して、バックグラウンドイメージランタイムから小さなイメージを生成しています。これはスレッドコールごとに表示されます(0.01秒)。 CGImageCreateWithImageInRectで画像の一部を表示すると、アプリケーションが非常に高速でメモリを消費し、数秒でクラッシュします。消費されるメモリは20MB以上になり、クラッシュします。通常のアプリケーションは2MBで動作します。CGImageCreateWithImageInRectに関連付けられたメモリを解放する方法

Image1 = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, w, h)); 

し、処理後に私は

CGImageRelease(Image1); 

を行うが、それは私を助けていません。

CGImageCreateWithImageInRectに関連付けられたメモリを解放する方法を知りたいと思います。

+0

what's imageRef?より多くのコードを投稿できますか? –

答えて

4

あなたの質問に対する答えは実際にはCGImageReleaseです。コードから抜粋した行のペアが正しくバランスされています。あなたはどこか別の場所に漏れているはずです。

-1

実際には、CGImageCreateWithImageInRect()は元の画像を保持しているので、そのペアのラインはバランスがとれていません。それは...

CGImageRef Image1 = CGImageCreateWithImageInRect(imageRef, CGRectMake(x, y, w, h)); 
CGImageRelease(imageRef); 
... 
CGImageRelease(Image1); 
+0

いいえ。新しいimageRefがそれを保持している場合は、適切な時刻にそれを解放します。 – Eiko

関連する問題