Core Data を使用する iCloud アプリを作成しようとしています。そのために、 の 1 つのインスタンスを使用しますUIManagedDocument
。の場合persistentStoreOptions
、「Database.data」を設定しNSPersistentStoreUbiquitousContentNameKey
、-iCloudURL-/CoreData_Logs を設定しNSPersistentStoreUbiquitousContentURLKey
ます。Apple が提案したように、次のようにドキュメントを開きます。
if ([[NSFileManager defaultManager] fileExistsAtPath:[urlOfDatabase path]])
{
[_database openWithCompletionHandler:^(BOOL success) { ... }];
}
else
{
[_database saveToURL:urlOfDatabase
forSaveOperation:UIDocumentSaveForCreating
completionHandler:^(BOOL success) { ... }];
}
また、NSPersistentStoreDidImportUbiquitousContentChangesNotification
s に登録し、そのメソッドで通知からのコンテキストをマージします。
アプリのテストには、iPad と iPhone を使用します。あるデバイスで実行し、データを追加して別のデバイスで開くと、正しいデータが表示されます。ただし、アプリが両方のデバイスで実行されているときにデータを追加すると、更新されないか (少なくとも 10 分間待機したことがあります)、数分後に更新されますが、大量のエラー メッセージが表示されるだけです。アイテムをダウンロードできませんでした。」
セットアップで何か (できれば明らかな) を見逃していませんか?