間の機能「のような」私はUser
エンティティと他のエンティティ間ののような機能を実装しようよ、ユーザーAがエンティティX.のようにしかし、私は」することができるようにコアデータでこれを最もうまく実装する方法がわかりません。コアデータとエンティティ
私は検討する必要がある2つの主なポイントがあります:オフライン 行われていたLike
を同期する方法が必要
- 別好感の持てるエンティティを追加するには
- 些細でなければなりません
私の最初の考えは抽象コアデータエンティティ
Like
を作成することでした。User
はLike
と対多の関係があり、Like
一User
を有しています。そして好感の持てるなければならない各エンティティに対して、私は好感の持てるエンティティに対1の関係を有している
Like
のサブクラスを作成します。User
との関係は継承されます。このように、抽象エンティティ
Like
は、 "syncedAt"や "deletedAt"などの属性を持つことができるため、タイプエンティティLike
がサーバに同期されているかどうかを調べることができます。これは合理的であるか、コアデータのこの問題を解決する良い方法がありますか?私が予期していないこのデザインには欠点がありますか?
私はこれについても考えました。しかし、いくつかの問題があります。エンティティと同期していないもの、つまりサーバーにPOSTする必要がある特定の「好きな」ものはわかりません。また、望ましいエンティティは既に好都合ではない別のクラスから継承しているかもしれません。 – hwaxxer
私はあなたが最初のものの述語を使うことができたと思う:synchedAt == nil(あるいは古いタイムアウトより古い)? 2番目のクラスでは、他のクラスがルートである場合、LikableEntityはそれを継承し、クラスはLikableEntityから継承します。だから、ルートクラスは好きではありませんが、あなたのクラスは? – wattson12
述語を使用しても、変更されたものと同期が必要なものを正確に把握することはできません。オブジェクトが変更されたか、またはそれとの関係が変更されましたか?そして、LikableEntityを他のエンティティから継承させるのはちょっと厄介なようです。他のエンティティから継承する好きなものを作る必要がある場合はどうすればよいですか? – hwaxxer