iOS:检查 coredata 对象是否仍然存在?

标签 ios objective-c core-data

我在使用两个不同的 View Controller 时遇到了问题。每个都在我的应用程序的标签栏中。一个 View Controller 影响另一个。在我的选项卡栏项目 1( View Controller 1)中,我编辑了我所有的数据库对象。您可以在那里添加、删除和编辑我的数据库中的实体。

在 View Controller 2 中,您可以选择这些实体并向这些实体添加子类别并编辑它们。但是,如果您在 View Controller 2 中的某个实体内,切换回 View Controller 1,删除该实体并切换回 View Controller 2,我的应用程序会崩溃。当然,因为这个 View Controller 的模型(刚刚删除的实体)已经不存在了。那么如何在我的 viewWillAppear 中检查它呢?这不起作用:

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

最佳答案

NSManagedObject 有一个 isDeleted 方法返回 YES 如果对象 已在托管对象上下文中标记为删除。

如果上下文已经被保存,那么这个对象实际上是从 持久存储,然后它的 managedObjectContext 方法返回 nil

所以这涵盖了两种情况:

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

关于iOS:检查 coredata 对象是否仍然存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310739/

相关文章:

objective-c - 如果我在一对多关系中添加相同的 NSManagedObject 几次会发生什么?

ios - Swift 1.2 的 Alamofire 生成错误

android - iOS 5.0 : generated x509 rsa public key of size 2048 is 270 bytes instead of 294 bytes. 为什么?

ios - 子类可以创建与父类不同的协议(protocol)吗?

objective-c - 在一段时间内执行 “if” 条件,然后在另一段时间内停止并重复?

ios - NSFetchRequest 没有参数重复

objective-c - 捕获输出 :didOutputSampleBuffer:fromConnection: image buffer size is always 360x480 even on iPad

ios - UIImagePicker 拍照时旋转错误

objective-c - 选择太多图像时 ELC Image Picker 出现问题 iPhone

ios - CoreData 防止更新时崩溃