如何将现有的非文档核心数据存储转换为 uimanageddocument?

Posted

技术标签:

【中文标题】如何将现有的非文档核心数据存储转换为 uimanageddocument?【英文标题】:How to convert existing non-document Core Data store to uimanageddocument? 【发布时间】:2012-01-27 16:11:52 【问题描述】:

如何将数据从现有的非文档核心数据存储导入到 uimanageddocument?

问题是如何从旧的 managedObjectContext 复制到新的。

【问题讨论】:

【参考方案1】:

答案是子类化 UIManagedDocument,其中将现有存储导入(简单复制)到文档存储:

- (BOOL)configurePersistentStoreCoordinatorForURL:(NSURL *)storeURL ofType:(NSString *)fileType modelConfiguration:(NSString *)configuration storeOptions:(NSDictionary *)storeOptions error:(NSError **)error

    // If legacy store exists, copy it to the new location
    NSURL *legacyPersistentStoreURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Guides.sqlite"];

    NSFileManager* fileManager = [NSFileManager defaultManager];
    if ([fileManager fileExistsAtPath:legacyPersistentStoreURL.path])
    
        NSLog(@"Old db exists");

        NSError* thisError = nil;
        [fileManager replaceItemAtURL:storeURL withItemAtURL:legacyPersistentStoreURL backupItemName:nil options:NSFileManagerItemReplacementUsingNewMetadataOnly resultingItemURL:nil error:&thisError];
        NSLog([thisError localizedDescription]);
    

    return [super configurePersistentStoreCoordinatorForURL:storeURL ofType:fileType modelConfiguration:configuration storeOptions:storeOptions error:error];

【讨论】:

请注意,在 ios 7 中,我认为您可能还需要为新的日志模式复制 WAL 和 SHM 文件。

以上是关于如何将现有的非文档核心数据存储转换为 uimanageddocument?的主要内容,如果未能解决你的问题,请参考以下文章

如何将现有的html文档转换为xhtml文档?

如何将现有的关系数据库模型转换为适合无 sql 数据库的模型(如 Mongo DB 或 Amazon Dynamo DB)

如何将现有的单例表视图数据保存在核心数据中?

如何将现有的回调 API 转换为 Promise?

如何将现有的回调 API 转换为 Promise?

如何将现有的回调 API 转换为 Promise?