iOS:检查核心数据对象是否仍然存在?

时间:2014-03-10 20:34:25

标签: ios objective-c core-data

我遇到两个不同视图控制器的问题。每个都在我的应用程序的标签栏中。一个视图控制器影响另一个视图控制器。在我的标签栏项目1(视图控制器1)中,我编辑了所有数据库对象。您可以在我的数据库中添加,删除和编辑实体。

在视图控制器2中,您可以选择这些实体并将子类别添加到这些实体并进行编辑。但是如果你在视图控制器2中的某个实体内,切换回视图控制器1,删除该实体并切换回视图控制器2,我的应用程序崩溃。当然,因为这个视图控制器(刚刚删除的实体)的模型不再存在。那么如何在viewWillAppear中检查呢?这不起作用:

- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    if(!self.myEntity){
        self.isNotExistingAnymore = YES;
        NSLog(@"YES;");
    }
}

1 个答案:

答案 0 :(得分:9)

NSManagedObjectisDeleted方法,如果对象返回YES 已在托管对象上下文中标记为删除。

如果已保存上下文,则实际上已从中删除对象 持久性存储,然后其managedObjectContext方法返回nil

所以这涵盖了两种情况:

if (self.myObject.isDeleted || self.myObject.managedObjectContext == nil) ...