iCloudをサポートするために、ローカルのCore Data-drivenアプリを更新しています。私が予想している1つの課題は、私が「在庫オブジェクト」と呼んでいるものの周りにあります。ユーザーが99%のユーザーをカスタマイズする最初の打ち上げ時にアプリが提供するデータです。コアデータ、iCloud、およびストックオブジェクト
証券は、ユーザは、新しいデバイス上で初めてアプリを起動した場合、私はデフォルトの動作はためになると思います
Item A
Item B
カスタマイズが
Tomatoes
Potatoes
オブジェクトオブジェクトiCloud永続ストア(アイテムA、アイテムB、トマト、ジャガイモ)からのカスタマイズされたオブジェクトとマージされるストックオブジェクトの再作成により、混乱を招くyユーザーエクスペリエンス
最初の起動時にiCloudデータを同期してチェックし、存在する場合は在庫オブジェクトを作成しないことが考えられます。しかし、ユーザーは最初の起動時にオフラインになり、2回目の起動時に、ローカル在庫オブジェクトとiCloudカスタムオブジェクトの同じ望ましくないマージが発生します。
iCloudマージにロジックを追加する方法はありますか?クラウド(トマトとジャガイモ)のカスタマイズされたオブジェクトが到着すると、ビームアップする前にローカル在庫オブジェクト(アイテムAとアイテムB)を削除するように通知できますか?
ありがとうございます!
まあ、私はその前払いでユーザーを困らせたいとは思っていません。もう1つの問題は、私が特別な方法で対処する必要のあるストックオブジェクトでいっぱいのエンティティ全体があることです。 Foodsエンティティとの関係で、在庫FoodTypeオブジェクト(「肉」、「野菜」、「デザート」など)を想像してください。たとえそれらのプロパティがすべて一致していても、それらが異なるデバイス上で異なる時間に作成された場合、コアデータはそれらを別個のものと見なすようです。ですから、合併が起こると、突然私は2つの「食肉」FoodTypesを持っています。いくつかの食べ物は1つのオブジェクトにリンクし、いくつかは他のオブジェクトにリンクしています。 – ed94133
私も同様のケースがありました。私は有用だったシードオブジェクトを提供しました - ほとんどは変更されませんでした。 1つの簡単な考え方は、ブール値の属性 'validated'を追加してそこから論理を取ることです。その後、ユーザーが気づかずに、等価性を確認してバックグラウンドで「マージ」することができます。 – Mundi