Я думал, что домашние сеттеры @property должны были выглядеть так:
-(void) setFoo:(Foo *)newFoo {
// Safeguards
// ...
[self willChangeValueForKey:@"foo"];
// Switcheroo
// ...
[self didChangeValueForKey:@"foo"];
}
Но я вижу много кода в постах людей, которые делают Какао намного дольше, чем я, где это так:
-(void) setFoo(Foo *)newFoo {
// Safeguards
// ...
// Switcheroo
// ...
}
Итак, мой вопрос: нужно ли нам вызывать методы уведомления KVO? Или это происходит волшебным образом при обновлении частного iVar, если вы используете современную среду выполнения?