5

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

    + (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 时,我需要保存上下文,但它通过了一个错误,现在我想我知道它没有被保存的原因,但不应该给出错误我有线索吗?但日志只是说“错误(空),(空)”

有什么想法吗

4

5 回答 5

8

我经历了你的痛苦并最终幸存下来。;)

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

如果您有此问题,请检查验证对象方法。那可能也是你的问题。

于 2011-10-23T12:11:02.803 回答
7

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

好吧,实际上,我不会为这么少的代码创建类方法;但问题仍然存在。检查nil上下文。

于 2010-11-09T20:42:32.417 回答
1

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

于 2013-12-18T18:31:05.397 回答
0

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

于 2010-11-09T20:15:03.700 回答
0

我碰巧遇到了这个问题,经过长时间调试发现是因为重复声明了 NSError* 错误,可能你在外部范围内还有另一个 NSError* 错误,例如:

NSError* error = nil;

// some code

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

    // your code
}

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

于 2012-04-30T05:53:29.330 回答