Как преобразовать существующее хранилище базовых данных без документов в документ uimanageddocument? - PullRequest
0 голосов
/ 27 января 2012

Как импортировать данные из существующего хранилища базовых данных без документов в uimanageddocument?

Вопрос в том, как скопировать из старого управляемого объекта объекта в новый.

1 Ответ

3 голосов
/ 04 февраля 2012

Ответ заключается в подклассе 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];
}
...