2009-10-26 3 views
13

Мне было интересно, какие параметры из этого метода вернутся.Параметры from observValueForKeyPath: ofObject: change: context:

- (void) observeValueForKeyPath:(NSString *)keyPath 
         ofObject:(id)object 
         change:(NSDictionary *)change 
         context:(void *)context; 

В the documentation он говорит

Ключевой путь Ключевой путь, по отношению к объекту, к значению, которое изменилось.

объект Исходный объект ключевой дорожки keyPath.

изменения Словарь, который описывает изменения, которые были внесены в стоимости имущества на ключевом пути относительно ключевого ресурса объекта.

контекст Значение, которое было получено, когда приемник был зарегистрирован получить ключ-значение наблюдения уведомления.

Не могли бы вы объяснить эти параметры для меня, поскольку я считаю, что документация немного трудно понять.

ответ

13

Когда вы зарегистрировались для уведомлений KVO, вы указали путь по ключу до addObserver:. Параметр keypath - это просто возвращаемое вам значение. Параметр объекта является объектом, которому вы отправили сообщение addObserver:. Они могут использоваться для различения уведомлений KVO по различным ключевым папкам/объектам (например, если вы наблюдаете несколько значений).

change - словарь, который содержит информацию о характере изменения стоимости. Он может содержать новое значение или старое значение или, для многих отношений, он может содержать индексы, которые изменились. Его содержимое лучше описано в KVO Programming Guide в разделе «Уведомление об изменении раздела».

Когда вы регистрируетесь для уведомления, вы также можете указать значение контекста. Последнее значение - это просто возвращаемое вам значение. Если у вас нет какой-либо контекстно-зависимой информации, подходит нуль до addObserver:.

Для хорошей дискуссии о некоторых недостатках системы КВО (и некоторых вспомогательных классах для их решения), см Mike Ash's great blog post

+1

Просто примечание о ссылке КВО, он переехал сюда: https://developer.apple .com/библиотека/Mac/документация/Какао/Концептуальное/KeyValueObserving/KeyValueObserving.html –

Смежные вопросы