3

MagicalRecord 2.0.7 版出现异常

每当我启动应用程序时,它都会崩溃并出现以下异常:

*** Assertion failure in +[NSManagedObjectContext MR_defaultContext]

我正在像这样配置核心数据:

在 appdelegate didFinishLaunchingWithOptions 方法中:

[MagicalRecord setupCoreDataStack];

在 appdelegate applicationWillTerminate 中:

[MagicalRecord cleanUp];

我注意到只有当我尝试截断实体中的所有记录时才会发生崩溃:

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];

[Song MR_truncateAllInContext:localContext];

我错过了什么吗?上面采用的方法错了吗?

编辑

崩溃发生在这一行:

+ (NSManagedObjectContext *) MR_defaultContext
{
    @synchronized (self)
    {
        NSAssert(defaultManagedObjectContext_ != nil, @"Default Context is nil! Did you forget to initialize the Core Data Stack?");//this line 
        return defaultManagedObjectContext_;
    }
}

在 NSMnagedObjectContext+MagicalRecord.m 文件中

4

3 回答 3

5

将您的核心数据设置 [MagicalRecord setupCoreDataStackWithStoreNamed:@"Model"];在应用程序委托方法之上。

于 2014-12-22T09:25:33.067 回答
1

因此,如果您正在指定一个上下文(localContext)并且您在 defaultContext 访问器中崩溃,那么还有其他内容。设置堆栈后,默认上下文不应为 nil。您是否在初始化后自行验证过?尝试使用

+[MagicalRecord currentStack]

看看是否一切都已正确设置。

在 truncateAllInContext: 方法中要检查的一件事是忽略您的本地上下文并只要求默认值吗?如果是这样,那么这是MagicalRecord中的一个错误,可能会在更新的版本中修复(最新的是2.1)

于 2013-07-29T17:37:23.867 回答
0

是的,如果可以的话,升级 MagicalRecord。我遇到了在 2.1 中消失的各种问题。至少其中一个是 MagicalRecord 设法解决的 Core Data 中的错误。

于 2013-08-06T01:41:16.150 回答