私のデータベースには、写真、場所(撮影場所)、タグ(写真)の3つのエンティティがあります。コアデータ削除ルール
各写真は、それが撮影された場所に関係を持っています。 各場所には、一連の写真が撮影されています。
各写真にはタグのセットがあり、各タグには一連の写真があります。これは多対多の関係です。単一の写真に複数のタグを含めることができ、タグを複数の写真に関連付けることができるからです。
今、私はこの動作のルールを削除する権利を把握することはできません。
- 私が直接、写真だけエンティティを削除したいです。
- 関連する場所に他の写真が撮影されている場合は、削除しないでください。写真がその場所の最後の写真の場合は削除する必要があります。
- 関連タグは他の写真にも表示されますが、他の写真が関連付けられていない限り削除しないでください。
- さらに、タグエンティティには、関連付けられた写真の数を記録する属性があります(新しい写真を追加するときにこの属性を更新し、写真のprepareForDeletionでも属性を更新します)。
ご提案がありますか?
私は、これは、ソートディスクリプタだった...(最初の最も使用される)タグをソートするために、「numberOfPhotosTagged」属性を使用: [NSSortDescriptor sortDescriptorWithKey:「numberOfPhotosTagged」昇順@:NO] – Ciampo
ああ、あなたは 'タグを使用することができるはずです代わりにソート記述子として.count'を使用し、値を同期させておく必要はありません。テストされていないので、保証はありませんが*動作するはずです。 –
タグをソートしているので、 'NSSortDescriptor sortDescriptorWithKey:@ taggedPhotos。@ count "昇順:NO"を使用しましたが、プログラムはこのエラーを終了します:' KeypathはKVC集約を含んでいます。 @ count ' – Ciampo