Реализация пользовательского сеттера для @property при повторном использовании реализации по умолчанию - PullRequest
3 голосов
/ 28 ноября 2011

Я хочу сообщить о делегировании каждый раз, когда задаю свойство.

Я подумал об этом, просто добавив сообщение для делегирования во время установки свойства.

Теперь очевидным способом было бы просто написать общую логику установки свойства и просто добавить вызов делегата в конце - но это кажется глупым.

Я бы предпочел иметь возможность вызывать какой-то [super setProperty] в начале и добавить только свою собственную логику в конце. (но супер не имеет смысла, конечно)

Таким образом, если я изменю тип свойства с «назначить» на «сохранить», мне не нужно менять установочный код.

Есть ли способ сделать это? Если нет - какие-нибудь лучшие предложения по очевидному пути?

Ответы [ 2 ]

4 голосов
/ 28 ноября 2011

Наблюдение ключевого значения

Ваш объект «делегат» может зарегистрироваться, чтобы получать уведомления при изменении свойства вашего объекта. Синтезированные сеттеры соответствуют КВО.

0 голосов
/ 28 ноября 2011

Это простой случай наблюдения значения ключа, который я должен признать, что сам не пробовал. Вы можете сослаться на документы .. или посмотреть это http://theocacao.com/document.page/161

...