Iphone managedObjectContext保存失败,错误为null

Iphone managedObjectContext保存失败,错误为null,iphone,core-data,ios,nsmanagedobjectcontext,Iphone,Core Data,Ios,Nsmanagedobjectcontext,什么会导致错误返回空值,这就是我所拥有的 + (BOOL)saveContext:(NSManagedObjectContext *)context { NSError *error = nil; if (![context save:&error]) { DLog(@"ERROR %@, %@", error, [error userInfo]); UIAlertView *alert = [[UIA

什么会导致错误返回空值,这就是我所拥有的

    + (BOOL)saveContext:(NSManagedObjectContext *)context
    {
      NSError *error = nil;
      if (![context save:&error]) 
      {
        DLog(@"ERROR %@, %@", error, [error userInfo]);
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry"

                                                        message:@"Error Saving the Data" 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];

        [alert show];
        [alert release];

        return NO;
      }
    return YES;
    }
上面的方法是类方法,我不确定为什么错误没有任何信息

这个方法是这样调用的

[HSCoreDataUtility saveContext:self.managedObjectContext]

当一个modalViewController关闭并返回到NavigationController时,我需要保存上下文,但是它发生了错误,现在我想我知道了它没有被保存的原因,但是错误不应该给我一个线索吗?但是日志只显示“ERROR(null),(null)”


任何想法

嗯,我不确定%@是否会导致错误变得冗长
[error localizedDescription]

我能看到发生这种情况的唯一方法是,如果您在
nil
上下文中传递。我会在类方法的顶部放置一个逻辑炸弹来防止这种情况


实际上,我不会为这少量代码创建类方法;但问题依然存在。检查上下文是否为零。

我经历了你的痛苦,最终活了下来

经过长时间的调试,我意识到自定义对象验证方法,在某些情况下,我返回NO,并且没有初始化错误

如果存在此问题,请检查验证对象方法。
这可能也是您的问题。

我碰巧遇到了这个问题,经过长时间的调试,我发现这是由于NSError*错误的重复声明造成的,您可能在外部作用域中有另一个NSError*错误,如:

NSError* error = nil;

// some code

if (!error)
{
    NSError* error = nil;

    // your code
}

然后错误将为零,尽管事实上有一个例外。

这是一个非常古老的线程,但希望我的回答能帮助像我一样在谷歌上找到它的人。我遇到了同样的问题,这些答案都不是我的问题;事实证明,当我更改数据模型时,我犯了一个愚蠢的错误,没有删除/重新安装应用程序,因此保存失败,没有出现错误。检查以确保你没有做同样的事情!:)

你确定
context
不是nil吗?我同时使用了[error userInfo]和[error localizedDescription],同样的错误(null),(null)context不是nil,我知道这一点是肯定的,我是如何传递上下文的,它从应用程序委托开始,我从那里传递,这可能与此有关。它可能会在某个地方被发布,或者不会被保留?用
nil
检查,让它吐出当前的
[context retainCount]
。检查不会有什么坏处。永远不要使用重新计数。在方法顶部对nil进行NSAssert检查。上下文为nil正是我的问题,谢谢提示!这可能不是原始海报的问题,但这正是发生在我身上的事情。谢谢似乎核心数据应该抛出一个异常,而不是与NSManagedObjectContext文档相矛盾——我应该提交一个bug。这应该得到10票的支持。我敢肯定,这帮我省了几个小时的拔头发的时间!同意,这可能不是最初的问题,但它肯定是以完全相同的症状出现的。哦,我的上帝!我会花几个小时来解决这个问题。谢谢谢谢还要花上几个小时。。。直到找到你的提示。