Ответ 1
Когда вы зарегистрировались для уведомлений KVO, вы указали путь от ключа к addObserver:
. Параметр keypath - это просто возвращаемое вам значение. Параметр объекта - это объект, которому вы отправили сообщение addObserver:
. Они могут использоваться для различения уведомлений KVO по различным ключевым папкам/объектам (например, если вы наблюдаете несколько значений).
change
- словарь, содержащий информацию о характере изменения стоимости. Он может содержать новое значение или старое значение или, для многих отношений, он может содержать индексы, которые изменились. Его содержимое лучше описано в KVO Programming Guide в разделе "Получение уведомления об изменении".
При регистрации для уведомления вы также можете указать значение контекста. Последнее значение - это просто возвращаемое вам значение. Если у вас нет какой-либо контекстно-зависимой информации, целесообразно передать нуль в addObserver:
.
Для хорошего обсуждения некоторых недостатков системы KVO (и некоторых вспомогательных классов для их решения) см. Майк Эш, отличный пост в блоге