我希望用户能够在禁用 iCloud 时继续正常使用核心数据存储。我遇到的唯一问题是他们可能有很多数据在启用时会生成日志,然后如果他们再次启用它,我要么不添加他们从那时起制作的所有数据要么添加所有数据,从而复制现有数据。为避免此问题,我想在禁用 iCloud 时继续记录日志,以便在再次启用时上传这些更改。
这是连接到 iCloud 时我必须执行的代码:
NSURL *iCloud = [fileManager URLForUbiquityContainerIdentifier:nil];
NSURL *iCloudLogsPath = [NSURL fileURLWithPath:[[iCloud path] stringByAppendingPathComponent:iCloudLogsDirectoryName]];
NSMutableDictionary *options = [NSMutableDictionary dictionary];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption];
[options setObject:[NSNumber numberWithBool:YES] forKey:NSInferMappingModelAutomaticallyOption];
[options setObject:iCloudEnabledAppID forKey:NSPersistentStoreUbiquitousContentNameKey];
[options setObject:iCloudLogsPath forKey:NSPersistentStoreUbiquitousContentURLKey];
[psc addPersistentStoreWithType:NSSQLiteStoreType
configuration:nil
URL:store
options:options
error:nil];