【问题标题】:How to release the retained objects or memory of app while logging out in IOSIOS注销时如何释放app保留的对象或内存
【发布时间】:2012-01-13 13:57:09
【问题描述】:

我想知道注销时我们将如何释放应用中视图控制器保留的所有内存。

我使用工具检查了我的应用程序,尽管我在我的日志记录屏幕上,但在注销时分配并未释放。

在使用应用程序一段时间后,仪器显示的分配量变为 10MB,但注销后我在登录屏幕上,但分配量仍然相同,即 10MB。

我不知道如何修改该注销功能,以便我可以清除其他视图保留的数据..

【问题讨论】:

  • 这取决于你的逻辑和场景。你如何呈现LoginScreen。您是否弹出了所有其他屏幕,是否正确释放了dealloc中的所有指针
  • 如果您在注销操作时从 navigationController 中弹出视图控制器,请检查您的 dealloc 方法是否被调用...如果被调用,则释放那里的所有属性和类变量。
  • 弹出所有其他屏幕??我需要检查 appdelegate 类或所有视图控制器的 dealloc>???

标签: iphone objective-c ios xcode memory-management


【解决方案1】:

您似乎想做的是创建自己的垃圾收集器。

改变你的心态。

您需要瞄准的是:释放它们在“dealloc”方法中保留的任何内存的对象。

【讨论】:

    【解决方案2】:

    重要的是释放您分配、复制、可变复制、新建或保留的每个对象。 此外,使用模拟器中的 Zombie 工具来检查僵尸(除了 Leaks 和 Allocations 工具)。

    您说:“清除其他视图保留的数据”。但“其他观点”应该清除他们保留的数据。

    【讨论】:

    • 僵尸工具根本无法帮助您查找泄漏,请使用静态分析器。如果事实僵尸能够做到,那么什么都不会被释放,你收集的任何数据都将是垃圾。
    • 我没有说 Zombie 会帮助他找到泄漏点,但是在他的场景中使用 Zombie 工具可能用途有限(我确实说过要使用 Leaks and Allocations 工具)。
    • 我没有投票给你,只是指出了一个可能的红鲱鱼。可能会节省操作时间。
    猜你喜欢
    • 1970-01-01
    • 2012-12-06
    • 2010-12-06
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多