ItemとCategoryの2つのエンティティがあります。各アイテムには1つのカテゴリがあり、カテゴリには0から多くのアイテムを含めることができます。
私には特別なカテゴリー、その他のカテゴリーがあります。これをブールプロパティisMiscで表すので、category.isMisc=YESです。
カテゴリを削除するときに、そのアイテムのいずれかを「その他」のカテゴリに再割り当てしたいと思います。だから私はアイテムのために次のカスタムセッターを書きました:
- (void)setCategory:(Category *)category
{
[self willChangeValueForKey:@"category"];
if (category == nil) {
category = [Database theMiscCategory];
}
[self setPrimitiveValue:category forKey:@"category"];
[self didChangeValueForKey:@"category"];
}
問題は、[Database theMiscCategory]がフェッチを実行することですが、これはお勧めできません。これを行う別の方法はありますか?
item.category = nilにすることだけを見てきましたが、これにより、コードの他の領域に十分な複雑さが生じ、「その他」のカテゴリが必要になります。