2016-03-31 11 views
0

私の質問は、iCloudとのCoreData(ローカルデータベース)同期のタイミングを制御する方法です。ローカルデータを変更するとわかるように、iCloudは自動的に変更されます。 iCloudがローカルにデータを同期できるようになるまでは可能でしょうか?CoreData + iCloud Syncタイミングが混乱する

答えて

0

2段階パクのようなものがあります経由でコミットされるまでのiCloud同期は行われません。ローカルデータが最初にコンテナに入れられて同期され、コンテナがiCloudと同期されます。これはシステム全体の悪魔によって行われます。それを制御することはできません。

"ローカルドキュメント"と "クラウドドキュメント"の間で異なるものにする必要があります。コメントで述べたように、これはアンチ・コンセプシュアルに似ています。しかし、これを得るには2つの戦略があります。それらのどれも私によってテストされていません。

  1. メモリに行った変更を保存しないでください。

  2. migratePersistentStore:toURL:options:withType:error:NSPersistentStoreCoordinator)を使用して、ローカルバージョンと同期バージョンの間で移行します。

両方の変異体は、大きな欠点を持っている:あなたは(同期化)文書を保存するための時間を遅らせる場合は、潜在的にローカルバージョンとユビキタスバージョンは、より多くの逃げとより。これは潜在的に解決できない葛藤につながります。 です。できるだけ早く、頻繁にストアを保存することを推奨します(=公開することを推奨します)。 BTW:iCloud同期のコアデータはグループウェアではありません。このように使ってみないでください。

+0

あなたのコメントをお寄せいただきありがとうございます。近い将来のシナリオです:私はバージョン管理アプリケーションを使用しています。私はプロジェクト内でたくさんのコードを変更/追加しましたが、これは私のローカルのデータです。私が "コミット"ボタンをクリックするまでサーバー(iCloud)。だから私は少し "タイミング"について混乱しています。 – Meonardo

+0

これはフレームワークと戦うのに似ています。 「クラウド文書」にプッシュされる「ローカル文書」はありません。 iCloud経由で同期される唯一の唯一のドキュメントがあります。私は私のAに2つの可能な解決策を追加します。 –

+0

素晴らしいアイデア!非常に役立ちます。 – Meonardo

0

は、タイミングを制御するために、何のDIREKTの方法はありませんが、ローカル - 管理オブジェクトコンテキストの変更が​​方法