Вам не нужно отправлять себе willChangeValueForKey:
и didChangeValueForKey:
сообщения внутри метода установки.Когда что-то начинает наблюдать ваше свойство currentDeviceIcon
, KVO оборачивает ваш метод setter для автоматической отправки этих уведомлений всякий раз, когда что-то отправляет вашему объекту сообщение setCurrentDeviceIcon:
.
Итак, метод должен выглядеть следующим образом:
-(void)setCurrentDeviceIcon:(NSImage *)newIcon {
if(newIcon == nil)
newIcon = [currentDevice defaultHeadsetIcon];
currentDeviceIcon = newIcon;
[self setDeviceChangesMade:YES];
}
И тогда вам нужно отправить этому объекту setCurrentDeviceIcon:
сообщения, чтобы изменить значение свойства.Не назначайте непосредственно переменной экземпляра currentDeviceIcon
, кроме как в этом методе и в init
или dealloc
(в последних двух, как правило, вы не должны отправлять себе другие сообщения).
Еслиэто не работает для вас, либо ваш вид изображения не связан, либо он связан с неправильным объектом.Как вы связываете это?Можете ли вы опубликовать код / скриншот инспектора привязок?