Я столкнулся с неприятной особенностью KVO: все уведомления направляются одним способом (observeValueForKeyPath:....
), требующим несколько операторов IF, если объект наблюдает многочисленные свойства.
Идеальным решением было бы передать метод в качестве аргумента методу, который в первую очередь устанавливает наблюдение, но кажется, что это невозможно. Существует ли решение этой проблемы? Сначала я подумал об использовании аргумента keyPath
(addObserver:forKeyPath:options:context:
) для вызова метода через NSSelectorFromString
, но потом наткнулся на шаблон KVO Dispatcher с методом в качестве контекста и статью, с которой он связан. предлагает другое решение для передачи аргументов (хотя я еще не получил это работает).
Я знаю, что многие люди сталкивались с этой проблемой. Возник ли стандартный способ обращения с ним?