【问题标题】:Delete entity in core data删除核心数据中的实体
【发布时间】:2012-06-22 14:51:23
【问题描述】:

我正在尝试删除核心数据中的一个实体。

我使用以下代码:

        //update core data
        [context deleteObject:myEntity];
        [myEntity deleteInContext:context];

        [context save:&error];

到目前为止,我知道实际上其中一条删除行应该可以完成这项工作,但是它们都没有。什么都没有发生。没有错误信息。什么都没发生。 context 是我的 NSManagedObjectContext。

谁能帮帮我? 谢谢!!!!!!

【问题讨论】:

  • 如果你使用NSLog(@"Context: %@, Entity: %@", context, myEntity);有什么提示吗?
  • 这就是输出:上下文:(null),实体:(实体:myEntity;id:0x8099240 ; 数据: { done = nil; item = "Tree"; })
  • 如果上下文为空,那么这将是您需要的最大提示。
  • 在同一代码中,我正在编辑我的实体的一个属性,并且上下文也为空。但它在那里工作。
  • 您正在尝试删除(托管)对象,而不是实体。

标签: objective-c core-data


【解决方案1】:

[context deleteObject:myEntity] 足以删除一个对象。 [myEntity deleteInContext:context] 是多余的。

如果您希望更改立即可见,请执行 [context processPendingChanges],否则该对象将被标记为“待删除”,但更改将在 runloop 循环结束时处理。

【讨论】:

  • 谢谢!但是您的建议并不能解决我的问题。我的代码现在是:[context deleteObject:myEntity]; NSLog(@"context 现在是 %@", context); [上下文过程PendingChanges]; [上下文保存:&error];
  • 你能同时显示 myEntity.managedObjectContext 的日志输出吗?因为您的上下文似乎为零(它确实不应该)。
【解决方案2】:

考虑到您记录上下文的结果:(null),修复必须是使用有效的上下文。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-06
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多