【问题标题】:How do I free these resources in my iPhone application?如何在我的 iPhone 应用程序中释放这些资源?
【发布时间】:2009-07-17 11:12:21
【问题描述】:

好的,我有一个应用程序,它可以在每次触摸后通过读取屏幕(如屏幕截图)告诉我触摸的像素颜色。为了检索像素,我使用类似于here 的方法。但似乎每次触摸后,图像数据仍然保留在 中(更不用说在我的相册中保存了数百张不需要的屏幕截图) 不久前我开始收到内存通知应用程序终于崩溃了......我的应用程序开始时为 3.5MB,但每次触摸后,这个数字都会增加,直到大约 100MB,之后应用程序崩溃。

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

【问题讨论】:

  • 您没有提供足够的信息来正确回答您的问题。您链接到的代码看起来很理智,即使它的目的是读取一个像素的颜色,这完全是矫枉过正。
  • 嗯,这就是我在我的应用程序中使用的代码。我对图形和缓冲区的主题知之甚少,所以我只是做了一个复制和粘贴。该代码允许我获取有关给定像素的信息,但如何在每次触摸后正确释放/释放(缓冲区?)数据?

标签: iphone memory memory-management opengl-es core-graphics


【解决方案1】:

提供的代码释放其所有缓冲区。内存泄漏必须在其他地方。

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

【讨论】:

    猜你喜欢
    • 2012-12-27
    • 2013-10-04
    • 2023-01-05
    • 1970-01-01
    • 2017-03-08
    • 2012-01-01
    • 2011-05-30
    • 2013-08-03
    • 1970-01-01
    相关资源
    最近更新 更多