競合がどのように解決されるかが明確でない Core Data 同期ソリューションを採用することに、私は懐疑的です。残念ながら、iCloud や Simperium などのソリューションは、「競合は自動的に処理される」と述べているだけで、そのままにしてあります。多くの場合、これは十分な情報ではありません。
具体的な例を挙げると、エンティティ A と B を含むアプリがあり、それらの間に 1 対 1 の関係があるとします。関係が任意ではないことを想像してください。
完全に同期したストアと 2 つの関連オブジェクト A_0 および B_0 から始めて、device1 は B_1 という新しい B オブジェクトを作成し、A_0 を B_1 に関連付けます。B_0 を削除します。
同時に、デバイス 2 も B_0 を削除しますが、B_2 という新しいオブジェクトを作成し、それを A_0 に関連付けます。
この状況はどのように解決されますか?おそらくタイムスタンプの順序に基づいて、A_0 は B_1 または B_2 に関連付けられることになりますが、孤立したオブジェクトはどうなるでしょうか? 削除されましたか?1 つのデバイスからトランザクション全体をロールバックしますか?
関係が必要なため、オブジェクトを単独で存在させることはできません。