如何释放与CGImageCreateWithImageInRect相关的内存

3

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

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

处理完之后,我执行以下操作

CGImageRelease(Image1);

但是它并没有帮助我。

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


什么是imageRef?你能发更多的代码吗? - Can Berk Güder
2个回答

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

-1

实际上,那一对行并不平衡,因为CGImageCreateWithImageInRect()会保留原始图像。应该是...

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

不需要。如果新的imageRef保留它,那么它也会在适当的时候释放。 - Eiko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接