【问题标题】:How to solve Memory Warning Level-1,then Memory Warning Level-2?如何解决内存警告级别 1,然后内存警告级别 2?
【发布时间】:2011-04-15 14:30:16
【问题描述】:

我使用苹果标准代码在 10 次图像滚动和分页后进行滚动+缩放+分页,我的控制台给出内存警告级别 1,然后内存警告级别 2,然后崩溃我怎样才能停止崩溃我的应用程序?请帮助我.我已从http://developer.apple.com/library/ios/#samplecode/PhotoScroller/Introduction/Intro.html获取此代码

【问题讨论】:

    标签: iphone cocoa-touch memory-leaks


    【解决方案1】:

    您是否实施了 -(void)didReceiveMemoryWarning ?您可以释放您目前不使用的所有图像。

    将所有图像保存在一个数组中会阻止您这样做。相反,您应该创建一个方法,该方法根据其索引(如数组)为您提供正确的图像,但管理一个缓存(即使用数组),您可以在发出内存警告时清理该缓存。我也不知道这个示例项目,但我猜他们只使用三个控件来显示左侧的图像、当前图像和左侧的图像。如果没有,请确保在对显示无用时释放其他视图。

    【讨论】:

    • 实际上我有 10 张图像,在这个视图控制器中,我提供了分页和缩放所有 10 张图像,所以我不能在这个方法中释放任何图像,因为我有数组并且在那个数组中我有所有 10 张图片的名称,我一张一张显示所有图片。
    • 您可以释放您当前未在视图的可见部分显示的任何图像(无论您认为是否可以)。
    【解决方案2】:

    您使用的图像似乎更大。尝试减小像素大小并使用它。

    一切顺利。

    【讨论】:

    • 我不能这样做,因为我们的应用程序要求向用户显示高分辨率图像。我的图像分辨率是 640x960,所以请给我一个替代解决方案。感谢您的宝贵回复。
    【解决方案3】:

    必须将每个大图像视为一组图块,并从当前显示在屏幕上的唯一图块或一组图块加载数据。

    我不知道它是如何工作的,但我猜你可以用谷歌搜索它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-23
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-28
      相关资源
      最近更新 更多