【问题标题】:NSobject's release query?NSobject 的发布查询?
【发布时间】:2011-02-08 23:03:36
【问题描述】:

您好,我是一名新手开发人员,正在构建我的第一个应用程序,我有一个重要问题 -

假设我们正在使用 TableviewController 并且使用了几个 NSMutableArray 对象并有一个 ManagedObjectContext 对象来获取要显示的数据。现在,如果我移动到另一个视图并释放我在当前视图中使用 [[nsObject alloc] init] 实例化的所有对象,那么一切正常,因为我们在下一个视图中,但是一旦我们单击后退按钮,我们就没有我们用来创建前一个视图的 NSObject,因此应用程序崩溃。我所做的就是留下物品而不释放。是好是坏?

【问题讨论】:

    标签: iphone memory-leaks


    【解决方案1】:

    您通常不应该仅仅为了将另一个视图控制器推入堆栈而释放。当您不再需要这些对象时,您应该释放。在这种情况下,您仍然需要这些对象,因为您要回到它身边。我会在你的 dealloc 方法中释放你的对象,只要这个视图控制器处理完它们并自己释放,就会调用它。

    如果您确定在推送应用时释放它们,则需要在返回时重新获取它们,然后再尝试执行任何操作,这与仅保留它们相比要复杂得多。

    【讨论】:

    • 您好,感谢您的回复,我之前并不清楚,我实际上是要去一个新的视图控制器,而不是同一个视图控制器中的视图。不同的视图控制器是否相同。什么时候调用 dealloc?
    • 我的回复已经假设您在谈论视图控制器。
    【解决方案2】:

    另一个想法是将数据保存在 pList 中,但这取决于您要保存的内容。当你改变视图时,保存它,当你再次回到同一个视图时,从 plist 中检索它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-26
      • 2017-08-11
      • 1970-01-01
      • 2017-04-08
      相关资源
      最近更新 更多