RxSwift - привязка свойства класса

У меня вопрос о привязке: у меня есть массив объектов моего настраиваемого класса: Array. Каждый объект можно обновить (изменить значение его свойств) в bg. Также я отделил Контроллер, который принимает и хранит один объект из списка как переменную и может его обновлять (объект все тот же, поэтому в списке он тоже будет обновлен)

Есть ли способ привязать все object.property -> UILabels к контроллеру, когда изменение свойств автоматически вызывает обновление метки?


person Viktor    schedule 10.04.2017    source источник


Ответы (1)


Конечно, есть несколько способов, как это сделать, но из вашего описания я бы использовал какой-то предмет (потому что вы сказали, что будут изменения в фоновом режиме, поэтому вам, вероятно, понадобится горячая наблюдаемая) .... Например, Variable или PublishSubject . Так что вы можете упаковать

let myArrayStream: Variable<[MyObject]> = Variable([])

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

person beretis    schedule 10.04.2017
comment
И если мне нужно подписаться на один объект из массива, я должен использовать Variable<MyObject>? При передаче одного элемента из массива примерно так: vcProperty: Variable<MyObject> = array.value[index]? Итак, если я изменю vcProperty.prop, оба подписчика (для vcProperty и array) будут уведомлены об этом событии, верно? - person Viktor; 10.04.2017