内存使用量增加

时间:2014-08-10 12:40:21

标签: ios objective-c

我有一个简单的问题 - 如果应用程序在运行时使用的内存每次加载一个视图控制器时会略微增加(0.1mb),这是否重要?我有一个具有无限级别的游戏,如果玩家失去视图控制器基本上刷新(例如所有计时器无效)并且加载了主菜单控制器。然后每次重启无限级别时,内存(显示在调试导航器中)都会上升。因此,第一次播放水平时它是226 mb,第二次是226.2 mb,第三次是226.4 mb等。这是一个问题吗?

1 个答案:

答案 0 :(得分:6)

可能发生的事情是,当您释放无限级视图控制器时(通过从superview中解除/删除),仍有一些对视图/ iVars /属性的强烈引用仍悬空。尝试在释放视图控制器之前释放所有属性和实例变量。您还可以尝试将所有IBOutlet(不会从视图中删除)定义为弱类型,以便在取消视图控制器时释放它们。

您可以记住一些内容管理清单:

  1. 用户应释放具有强/保留类型的任何属性/变量。 ARC会自动执行此操作,但有时它无法正确释放(不要问为什么)。
  2. 实例变量默认为“强”引用类型,这意味着您必须手动释放它们
  3. 保留在视图中并且不删除SuperSuperview的IBOutlet可能是弱类型的,因为视图对它有强烈的引用。
  4. (如果你没有使用ARC)确保你有一个NSAutoReleasePool块,以便释放所有局部变量,从而防止内存泄漏。
  5. 你的问题虽然目前不严重,但很快就会变得严重。平均iPad / iPhone开始提供大约300 MB的内存警告,所以如果你开始为游戏添加更多功能,这可能会成为一个大问题。

    希望这个答案有所帮助。