Параметры от observeValueForKeyPath:ofObject:change:context:

Варианты использования - это значения, предоставляемые субъектам исследуемыми системами или организациями. Для организаций, названных бизнес-прецедент; Для систем именованный вариант использования системы. Смотрите картинку ниже (нарисовано мной): Business use case vs. System use case

13
задан Quinn Taylor 26 October 2009 в 19:32
поделиться

1 ответ

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

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

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

Для хорошего обсуждения некоторых недостатков системы KVO (и некоторых вспомогательных классов для их устранения), см. отличное сообщение в блоге Майка Эша

13
ответ дан 2 December 2019 в 00:46
поделиться