【问题标题】:Delete all uncommitted entities in core data [duplicate]删除核心数据中所有未提交的实体[重复]
【发布时间】:2014-02-26 21:55:17
【问题描述】:

假设我使用 coreData 在数据库中插入了几个实体。我没有保存。如果我没有对它们的引用,如何删除所有未保存的插入实体?

好吧,我怎么看,当context.undoManagesnil 时,我不能使用[context rollback]?那很糟。 但是在[context reset] 之后,我应该如何处理所有引用和对象?如果它们在数据源中使用,我的界面会发生什么?我会崩溃吗?

【问题讨论】:

    标签: ios objective-c macos core-data


    【解决方案1】:

    这是 CoreData's NSManagedObjectContext 类的目的。它允许您在特定于您选择的任何目的的“便签本”中执行您的更改。如果你愿意,你可以[context save]。或者,如果你决定把东西扔掉......

    [context rollback];
    

    【讨论】:

      【解决方案2】:
      [managedObjectContext rollback]
      

      将还原所有未保存的更改。

      【讨论】:

      • 如果context.undoManagernil 值有可能吗?
      【解决方案3】:

      如果您使用父/子 NSManagedObjectContext,那么您可以创建 NSManagedObjectContext 的新实例并重新分配其父级。

      如果你不这样做,那么你可以使用实例方法reset

      文档重置

      将接收器返回到其基本状态。

      - (void)reset

      所有接收者的管理对象都被“遗忘”了。如果使用此方法,则应确保同时丢弃​​对使用接收器获取的任何托管对象的引用,因为之后它们将无效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 2012-06-22
        • 2017-02-16
        • 1970-01-01
        • 1970-01-01
        • 2010-11-25
        • 1970-01-01
        相关资源
        最近更新 更多