我正在尝试创建一个使用Core Data的iCloud应用。为此,我使用UIManagedDocument
的单个实例。对于persistentStoreOptions
,我为NSPersistentStoreUbiquitousContentNameKey
设置了“Database.data”,为NSPersistentStoreUbiquitousContentURLKey
设置了-iCloudURL- / CoreData_Logs。正如Apple建议的那样,我这样打开文档:
if ([[NSFileManager defaultManager] fileExistsAtPath:[urlOfDatabase path]])
{
[_database openWithCompletionHandler:^(BOOL success) { ... }];
}
else
{
[_database saveToURL:urlOfDatabase
forSaveOperation:UIDocumentSaveForCreating
completionHandler:^(BOOL success) { ... }];
}
此外,我注册了NSPersistentStoreDidImportUbiquitousContentChangesNotification
,并合并了该方法中通知的上下文。
要测试应用程序,我使用的是iPad和iPhone。当我在一台设备上运行它时,添加一些数据,然后在另一台设备上打开它,显示正确的数据。但是,如果我在应用程序在两台设备上运行时添加数据,它要么不更新(我等待至少10分钟一次),要么在几分钟后更新,但只有一大堆错误消息:该项目无法下载。“。
我的设置中是否遗漏了某些内容(希望是显而易见的)?