Вам нужно вызвать willChangeValueForKey: и didChangeValueForKey :?

Я думал, что домашние сеттеры @property должны были выглядеть так:

-(void) setFoo:(Foo *)newFoo {

  // Safeguards 
  // ...

  [self willChangeValueForKey:@"foo"];
  // Switcheroo
  // ...
  [self didChangeValueForKey:@"foo"];
}

Но я вижу много кода в постах людей, которые делают какао намного дольше, чем я, где это так:

-(void) setFoo(Foo *)newFoo {

  // Safeguards 
  // ...

  // Switcheroo
  // ...
}

Итак, мой вопрос: нужно ли нам вызывать методы KVO-уведомлений? Или это происходит волшебным образом при обновлении приватного iVar, если вы используете современную среду выполнения?

Ответы на вопрос(1)

Ваш ответ на вопрос