如何解决“NSPersistentStoreCoordinator没有持久存储(未知)。它无法执行保存操作。”

时间:2016-05-07 00:46:53

标签: ios objective-c

-(void)initCoredataWithModelName:(NSString *)modelName andDatabaseName:(NSString *)databaseName{

    /** 实例化数据库 存储的 数据模型 */
    NSURL * modelURL = [[NSBundle mainBundle] URLForResource:modelName withExtension:@"momd"];
    NSManagedObjectModel * model = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

    /** 根据数据数据模型 实例化持久存储调度器 */
    NSPersistentStoreCoordinator * psc = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];

    /** 指定保存的数据库文件 以及类型 */
    //数据保存路径
    NSString * dbPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    dbPath = [dbPath stringByAppendingPathComponent:databaseName];
    NSURL * url = [NSURL fileURLWithPath:dbPath];

    //保存类型
    [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:url options:nil error:NULL];


    /** 被管理对象上下文 */
    _managedObjectContext = [[NSManagedObjectContext alloc] init];
    //指定 存储 上下文的 持久化调度器
    [_managedObjectContext setPersistentStoreCoordinator:psc];

}

-(void)saveContext{

    [self.managedObjectContext save:NULL];
}

错误消息是:错误:非法尝试保存到从未打开过的文件。 “这个NSPersistentStoreCoordinator没有持久存储(未知)。它无法执行保存操作。”没有记录最后一个错误。

0 个答案:

没有答案