【发布时间】:2013-02-20 12:20:43
【问题描述】:
我知道这个问题问了很多次,但我还没有找到解决办法。我的应用程序按照 a->b->c->d->b 的顺序在视图之间移动。这意味着从视图“d”我并不总是返回,并且需要跳转到视图“b”。问题是视图“c”和“d”的内存没有释放,并且在一些循环之后(b->c->d->b->c....)应用程序崩溃了。操作的顺序非常重要。我不得不提到,我使用模态 segue 在视图之间导航。我尝试过多种方式释放内存:
- 放入 DidRecieveMemoryWarning:_myProperty = nil;
- 放入 ViewDidUnload:_myProperty = nil;
- 将所有属性更改为弱。
- 使用@autoreleasepool 包装代码。
没有任何帮助,应用一段时间后崩溃,如何通过“强制”释放视图和内存?
【问题讨论】:
-
是什么让您确定崩溃与内存泄漏有关?
-
用活动监视器检查它,总是在大约 420MB 时应用程序崩溃,不考虑查看它,并且我收到内存警告。
-
当任何视图弹出导航堆栈时,如果您使用
ARC,它将自动释放。您在问题中描述的情况永远不会发生,除非您以某种方式使对象保持活动状态,即指针存储在另一个数组中并保留它们等等...... -
如果您确实收到内存警告:您如何应对它们,特别是:您会因此释放内存?
标签: ios xcode memory-leaks