【问题标题】:Memory issues regarding App关于应用程序的内存问题
【发布时间】:2011-05-22 01:51:11
【问题描述】:

我的应用程序经常崩溃... :(

我知道我在释放视图和对象时犯了错误。我只想知道除了最后释放内存之外,我该如何管理代码之间的内存...

另外,我的大多数视图控制器都使用-(void)ViewDidLoad 来创建视图。所以在释放内存之前我也使用-(void)ViewDidUnload ???

如果是,请指导我如何使用它??

还有没有其他方法可以解决内存问题??? :(

【问题讨论】:

    标签: iphone uiview uiviewcontroller


    【解决方案1】:

    请记住,viewDidLoad 可以被多次调用,尤其是在内存不足的情况下,可以自动卸载视图以节省内存。

    在这种情况下,您可以在分配对象之前检查您的对象是否为 nil,或者在内存警告中取消分配它(在 didReceiveMemoryWarning 中,如果 self.view.superview == nil 则将自动释放)。

    您还应该在某个时候了解分析工具,或者至少了解泄漏分析器。在 Xcode 中转到 Run -> Run With Performance Tool -> Leaks。您可能会遇到此工具的一些问题,但是一旦您掌握了它,您会想知道没有它您将如何生活(例如,如果您的主机名中包含特殊字符,您将需要重命名它)。

    【讨论】:

    【解决方案2】:

    如果你在 .h 文件中创建了任何对象并且只分配了一次,那么你应该解除分配该对象 在这个方法中:

    -(void)dealloc { [myObject 发布]; [超级释放]; }

    但是如果你在本地(在.m)文件中创建了任何对象,那么在不再需要它的地方释放它。

    【讨论】:

      猜你喜欢
      • 2014-01-16
      • 2012-07-16
      • 1970-01-01
      • 2013-05-24
      • 1970-01-01
      • 1970-01-01
      • 2013-05-11
      • 1970-01-01
      • 2012-01-06
      相关资源
      最近更新 更多