NSManagedObject のカスタム ロジックをすべてカテゴリに配置して、モデルが変更された場合にモデルから標準クラスを再生成できるようにしました。
私が必要とするそのようなロジックの 1 つは、オブジェクトのプロパティの 1 つに対するカスタム セッターです。
- (void) setName:(NSString *)name
{
[self willChangeValueForKey:@"name"];
[self setPrimitiveValue:name forKey:@"name"];
[self didChangeValueForKey:@"name"];
NSLog(@"name was changed");//for example
}
これをカテゴリに入れました。この場合はItem+Custom.m
私の質問:
Item の名前を設定するたびにItem+Custom.m をインポートする必要がないのはなぜですか? 上記のログ ステートメントは引き続き発生します。
メッセージを送信するクラスが、ロジックを実行するためにカテゴリについて知る必要がないことに興味がありますか?
そして (おそらく別の問題) 同じオブジェクトの 2 番目のカテゴリに、別のログ ステートメントを持つ同じカスタム セッターを追加するとどうなるでしょうか?