如何释放由CGImageCreateWithImageInRect关联的内存

时间:2009-03-20 06:49:37

标签: iphone objective-c cocoa-touch

我正在使用CGImageCreateWithImageInRect()从背景图像运行时生成一个小图像,该图像将在每次线程调用时显示(0.01秒)。一旦我开始通过CGImageCreateWithImageInRect显示部分图像,应用程序开始以非常高的速率消耗内存并在几秒钟内崩溃。消耗的内存达到20多MB并崩溃。正常应用程序将运行2MB。

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

在处理后我做了

CGImageRelease(Image1);

但它没有帮助我。

我想知道如何释放与CGImageCreateWithImageInRect相关联的内存。

2 个答案:

答案 0 :(得分:4)

你的问题的答案实际上是CGImageRelease;从代码中摘录的那对行是正确平衡的。你必须在其他地方泄漏。

答案 1 :(得分:-1)

实际上,这对线不平衡,因为CGImageCreateWithImageInRect()保留原始图像。它应该是......

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