【问题标题】:Magical record: nil is not a legal NSPersistentStoreCoordinator神奇的记录:nil 不是合法的 NSPersistentStoreCoordinator
【发布时间】:2015-06-17 16:55:55
【问题描述】:

我正在使用 MagicalRecord,

这就是我设置 coreData 堆栈的方式

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Magical record

    [MagicalRecord setupCoreDataStackWithStoreNamed:@"HITO.sqlite"];

我就是这么用的

- (void)getQuizzessWithCompletion:(void(^)(NSArray *quizzess, BOOL succes, NSError *error))completion {
    NSManagedObjectContext *backGroundContext = [NSManagedObjectContext MR_newPrivateQueueContext] ;
    NSArray *quizzess = [Quiz MR_findAllInContext:backGroundContext];
    BlockSafeRun(completion, quizzess, YES, nil);
}

这就是我得到的

2015-06-17 19:50:53.358 HITO[6677:611576] Created new private queue context: <NSManagedObjectContext: 0x61f990>
2015-06-17 19:50:57.230 HITO[6677:611576] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+entityForName: nil is not a legal NSPersistentStoreCoordinator for searching for entity name 'Quiz''

似乎没有正确设置核心数据堆栈。 我尝试更改设置核心数据堆栈的方法,但没有成功。

【问题讨论】:

  • 您的核心日期模型中是否真的有一个“测验”实体?

标签: ios objective-c iphone core-data


【解决方案1】:

您应该创建默认上下文,然后创建新的私有上下文,然后将默认上下文设置为私有上下文的父级

NSManagedObjectContext *mainContext = [NSManagedObjectContext MR_defaultContext];
NSManagedObjectContext *privateQueueContext = [NSManagedObjectContext MR_newPrivateQueueContext];
[privateQueueContext setParentContext:mainContext];

NSArray *quizzess = = [Quiz MR_findAllInContext:privateQueueContext];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-06
    • 2020-05-09
    • 2015-01-09
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多