NSManagedObjectContext不会保存或获取不同于UIViewController的自定义类

我一直在使用UIViewController来管理核心数据。现在,我想移动并更好地组织代码,但意识到NSmanagedobjectcontext仅在我的UIViewController类中正常工作。

尝试保存或获取其他类中的值会得到未解决的错误...

if ( ([context hasChanges]) ) {
    NSError *error = nil;
    if ( (![context save:&error]) ) {
        return true ;
    } else {
        NSLog(@"Unresolved error %@,%@,%@",error,[error userInfo],[error localizedDescription],[error localizedFailureReason]  );
        return false ;
    }
} else return false ;

获取...“未解决的错误(null),(null),(null),(null)”

我认为获取上下文存在问题...

 - (NSmanagedobjectcontext *)managedobjectcontext {
    NSmanagedobjectcontext *context = nil;
    id delegate = [[UIApplication sharedApplication] delegate];
    if ([delegate performSelector:@selector(managedobjectcontext)]) {
        context = [delegate managedobjectcontext];
    }
    return context;

}

但是,如果我从ViewController传递NSmanagedobjectcontext对象并从此类保存或获取,仍然无法正常工作。因此,需要在UIViewController中进行“ [context save:&error]”。

我需要从自定义类访问NSmanagedobjectcontext来组织代码... 这是什么意思,有什么想法吗?

zhaienpeng3 回答:NSManagedObjectContext不会保存或获取不同于UIViewController的自定义类

[context save:&error]在您的代码中工作正常。这就是为什么错误为空的原因。问题仅在于您的逻辑落后:实际上保存成功时,您将转到“ false”分支。

本文链接:https://www.f2er.com/3004112.html

大家都在问