デフォルトのコンテンツを含むデータベースがあります。iCloudを使用して、さまざまなデバイスのデータベースの変更を同期するにはどうすればよいですか?CoreDataが最初に空だった場合にデバイスを同期する方法を知っており、外部sqliteファイルからCoreDataに移行できます。
1 に答える
3
既存のCoreDataストアがあり、iCloudサポートを追加する場合は、既存のすべてのデータを新しいデータストアに転送し、結果を保存する必要があります。これが必要なのは、iCloudは変更を保存するときにのみトランザクションを生成するためです。したがって、同期プロセスをすぐに開始するには、すべての変更を効果的に保存する必要があります。
ほとんどの場合、NSPersistentStoreCoordinator
'sを使用して、これを1つのステップで実行できますmigratePersistentStore:toURL:options:withType:error:
。を呼び出すときに使用するのと同じiCloudオプションを渡しますaddPersistentStoreWithType:configuration:URL:options:error:
。この代替アプローチは、iCloud以外のデータストアからiCloudを使用するデータストアに移動する場合にのみ使用してください。
また、コアデータでiCloudを使用することに注意してください。信頼性については定評がありません。Appleのドキュメントとサンプルプロジェクトに細心の注意を払い、それでも時々機能しないように準備してください。
于 2013-01-29T17:58:11.657 に答える