我想使用 UbiquityContainer 来对 coredata 进行 iCloud 备份。但是,如果我没有在模拟器上登录 iCloud,则ubContainer
以下内容仍然为零。
-(void)addSqliteStoreToPersistentStoreCoordinator:(NSPersistentStoreCoordinator *)psc{
NSError *error = nil;
NSFileManager *fm = [NSFileManager defaultManager];
NSURL *ubContainer = [fm URLForUbiquityContainerIdentifier:nil]; // Why nil???????
NSURL *storeURL = [ubContainer URLByAppendingPathComponent:@"f11Remote.sqlite"];
NSMutableDictionary *options = [NSMutableDictionary dictionary];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSInferMappingModelAutomaticallyOption];
[options setObject:[NSDictionary dictionaryWithObjectsAndKeys:@"FULL", @"synchronous", nil] forKey:NSSQLitePragmasOption];
[options setObject:@"f11iCloudStore" forKey:NSPersistentStoreUbiquitousContentNameKey];
[options setValue:ubContainer forKey:NSPersistentStoreUbiquitousContentURLKey];
sqliteStore = [psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error];
if (!sqliteStore)
[NSException raise:@"FTDatastore: Couldn't open the local SQLite database." format:@"Reason: %@", [error localizedDescription]];
}
我期待它的一个offline
版本同时工作并且表现得像核心数据,直到用户登录到 iCloud。可以做什么?