2009-07-17 40 views
0

好吧,我有一个应用程序,通过在每次触摸后阅读屏幕(如屏幕截图)告诉我触摸了哪个像素的颜色。为了检索像素,我使用了类似于出现here的方法。但似乎每次触摸后,图像数据仍然保持在(更不用说在我的相册中保存数百个不需要的屏幕截图)我在应用程序最终崩溃之前不久就收到内存通知。 ...我的应用程序开始在3.5MB,但每次触摸后,这个数字增加,直到它约为100MB,之后该应用程序崩溃。如何在iPhone应用程序中释放这些资源?

问题:
如何在每次触摸后释放这些数据?
Here is the link再次为来源)

+0

您没有提供足够的信息来正确回答您的问题。你链接的代码看起来很正常,即使它为了读取一个像素的颜色而花费的代价也是过度的。 – 2009-07-17 11:32:13

+0

好吧,这是我在我的应用程序中使用的代码。我对图形和缓冲区的知识知之甚少,所以我只做了一个复制和粘贴。该代码允许我获得有关给定像素的信息,但是如何在每次触摸后正确释放/释放(缓冲区?)数据? – RexOnRoids 2009-07-17 11:41:43

回答

1

提供的代码释放它的所有缓冲区。内存泄漏必须在别处。

如果您想使用更简化的方式读取一个像素的颜色,可以考虑this answer中建议的方法。这个想法是使用一个非常小的缓冲区,并用一个变换来绘制视图,该变换将像素移动到上下文所覆盖的范围内。