【发布时间】:2014-04-03 16:10:42
【问题描述】:
这是我的场景:
我的应用使用核心数据并且我正在添加 iCloud 支持,但我在尝试将用户数据迁移到 iCloud 时遇到了问题。
这是我尝试过的:
- 使用 addPersistentStoreWithType 添加我当前的本地数据库
NSError* error;
NSURL* oldStoreURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
oldStoreURL =[oldStoreURL URLByAppendingPathComponent:@"Database.sqlite"];
// add local store (local version)
NSPersistentStore *store = [self.managedObjectContext.persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:oldStoreURL
options:options
error:&error];
- 使用方法 migratePersistentStore 进行迁移(可能我在这里遗漏了一些东西):
NSURL* storeURL = [[NSFileManager defaultManager] URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:NULL];
storeURL = [storeURL URLByAppendingPathComponent:@"Database.sqlite"];
[self.managedObjectContext.persistentStoreCoordinator migratePersistentStore:store toURL:storeURL options:iCloudOptions withType:NSSQLiteStoreType error:&error];
我收到 Cocoa 错误 134080,无法添加同一个商店两次。
有人能解释一下这个 migratePersistentStore 方法是如何工作的,以及我需要为每个参数传递什么吗?我在 Apple 文档上几乎没有找到它。
【问题讨论】:
标签: ios objective-c core-data ios7 icloud