家庭料理の @property セッターは次のようになるはずだと思いました。
-(void) setFoo:(Foo *)newFoo {
// Safeguards
// ...
[self willChangeValueForKey:@"foo"];
// Switcheroo
// ...
[self didChangeValueForKey:@"foo"];
}
しかし、私よりもはるかに長く Cocoa を使用している人々によるブログ投稿で、次のような多くのコードを目にします。
-(void) setFoo(Foo *)newFoo {
// Safeguards
// ...
// Switcheroo
// ...
}
私の質問は、KVO 通知メソッドを呼び出す必要があるかどうかです。それとも、最新のランタイムを使用している場合、プライベート iVar を更新するときに魔法のように行われているのでしょうか?