【问题标题】:Unsaved NSManagedObject life cycle after context save failure上下文保存失败后未保存的 NSManagedObject 生命周期
【发布时间】:2014-08-06 09:26:28
【问题描述】:

假设由于与数据本身无关的原因,我无法保存 NSManagedObjectContext。一个典型的例子是设备上没有足够的空间。

据我了解,NSManagedObjects 仍驻留在内存中,处于未保存状态。

以下是以下问题:

  1. 对象会发生什么?他们是否有突然被逐出记忆的风险,特别是当应用程序处于后台时?如果是,发生这种情况时是否有某种通知?
  2. 您如何管理此类事件或类似事件,而不是由程序本身引起的?
  3. 是否可以在 XCode 开发过程中模拟这种特殊行为(空间不足)?

【问题讨论】:

    标签: objective-c core-data


    【解决方案1】:

    对象会发生什么?他们是否有突然被逐出记忆的风险,尤其是当应用程序处于后台时?如果是,发生这种情况时是否有某种通知?

    对象不会从内存中被逐出。 应用程序如果在后台,则可以从内存中逐出。发生这种情况时,应用程序的所有对象也会消失。通知将遵循与普通应用生命周期通知相同的规则——那些由UIApplication 发布并作为回调发送给应用委托的规则。

    您如何管理此类或类似的非程序本身的事件?

    您无能为力。如果设备上没有空间,则无法保存数据。唯一真正的选择是,如果您有一些可以删除的其他已保存数据,以腾出一些空间。如果这不是一个选项,那么您就不走运了,因为没有地方可以放置这些未保存的数据。

    在 XCode 开发过程中是否可以模仿这种特殊行为(空间不足)?

    拿一个测试设备并用数据填充它,然后运行您的应用程序。

    【讨论】:

      猜你喜欢
      • 2017-03-12
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2013-01-05
      • 2014-08-11
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多