Я создаю приложение с использованием MVVM и ReactiveCocoa для создания привязок между viewModel и пользовательским интерфейсом, однако блок подписки на сигнал подтверждения модели не вызывается.ReactiveCocoa блок подписки, не вызываемый в viewModel в Swift
моего взгляд модель довольно проста и скелетная:
class ViewModel: RVMViewModel {
var name: String = "" {
willSet {
println("New Value: \(newValue)")
}
}
required init(){
super.init()
let signal = self.rac_valuesForKeyPath("name", observer: self)
signal.subscribeNext {
println("Subscribe block: \($0)")
}
}
}
На моем взгляде контроллере, у меня есть следующие привязки:
//observe ui and programatic changes
RACSignal.merge([self.nameField.racTextSignal(), self.nameField.rac_valuesForKeyPath("text", observer:self)]).subscribeNext({
(next) -> Void in
if let text = next as? String {
self.viewModel.name = text
}
})
RAC(self.nameField, "text") = self.viewModel.rac_valuesForKeyPath("name", observer: self)
Я получил RAC макрос работает в стриже основой от того, что я читать here.
Теперь, на мой взгляд, привязки в контроллере my view, блоки subscribeNext называются просто отлично. В моем представленииModel, в willSet, выдается новое значение. ОДНАКО, блок подписки на мой сигнал в моем блоке init только вызывается один раз, когда свойство сначала инициализируется. Это подталкивает меня к стене, у кого есть идеи?
Я закончил тем, что понял это, поэтому не стоит беспокоиться. – barndog
@startupthekid, если вы решили его, пожалуйста, опубликуйте решение, это так ведь, и мы хотели бы поделиться тем, что мы узнаем здесь :) –