使用NSManagedObject自己的上下文属性来删除它?

时间:2014-06-27 15:46:14

标签: objective-c nsmanagedobject

它可能有点幼稚,但我想知道使用以下语句从Core Data的持久存储中删除托管对象是否正确:

[managedObject.managedObjectContext deleteObject:managedObject];

我在Xcode调试器中运行了上述内容 - 它没有抱怨,但对象的内容仍然存在。是否可以通过要删除的对象引用上下文,从而导致内存锁定以防止删除对象?

1 个答案:

答案 0 :(得分:0)

关于您的内容持久性,您仍需要在删除对象后在上下文中调用save :.

如果您通过引用托管对象中的managedObjectContext遇到问题我无法回答,因为我通常使用' DataManager'管理我的managedObjectContext。下面是我在其中一个dataManagers中使用的删除方法示例:

- (void)deleteReport:(Report*)aReport inContext:(NSManagedObjectContext*)context {
    if (aReport != nil) {
       if (context == nil) {
           context = self.managedObjectContext;
       }

       context.mergePolicy = NSMergeByPropertyStoreTrumpMergePolicy;
       [context deleteObject:aReport];

       NSError *error = nil;
       [context save:&error];
       if (error) {
           //NSLog(@"%@", error);
       }
   }}

编辑:为了澄清,此方法中的Report是NSManagedObject的一个实例,该方法将NSManagedObjectContext作为参数,因为从中提取它的应用程序支持使用多个上下文。