Тест (вы сказали, что это был университетский класс!):
a) Приводит ли установка свойства к его текущему значению в уведомлении об изменении KVO?
b) При получении событияиз MCU, если вы не измените свою собственность, если новое значение будет таким же, это нарушит ваш цикл?
c) Подумайте о другом тесте, который вы можете сделать!
Комментарий Ответ
Я предполагаю, что вы проверили (a) и (b) и обнаружили, что они не выполняют именно то, что вам нужно.Так что, может быть, вам нужно одно свойство с двумя сеттерами?Один сеттер запускает KVO, а другой - нет ...
Теперь вы говорите о температуре, поэтому ваша собственность предположительно имеет числовой тип.Является ли это обернутым числом, как в NSNumber
, или простым числом, как в double
?
Давайте предположим, что последнее, как первое, (намного) более вовлечено!
Итак:
- У вас есть числовое свойство, скажем
double
, поддерживаемое переменной экземпляра того же типа. - У вас
@syntheize
свойство, созданное компиляторомустановщик и получатель, которые изменяют / извлекают значение в этой переменной экземпляра. - Вы используете KVO для определения использования установщика.
- И вы хотите иметь возможность установитьсвойство без запуска KVO.
- А для примитивного числового свойства все, что нужно сделать установщику, это установить переменную экземпляра ...
Проблема решена.OK