【发布时间】:2017-05-20 06:23:34
【问题描述】:
我正在使用 Swift Bond 将视图与 viewModel 进行双向绑定。这是通过双向绑定实现的。
问题是: 将模型与 viewModel 绑定的常见做法是什么,更具体地说,模型如何知道 viewModel 中所做的更改。在 ReactiveCocoa 中有 RACChannel 可以做到这一点,因此您可以在不更改模型属性类型的情况下绑定 viewModel 和模型。
主要目标是保持模型非常简单,仅使用 String、Int、Date 等原始类型,并将 Observable 和 Property 类型移动到 viewModel。
插图:
import Bond
import ReactiveKit
struct Person {
var name: String
var age: Int
var birthdate: Date
}
struct PersonViewModel {
fileprivate var person: Person
var name: Observable<String>
var age: Observable<Int>
var birthDate: Observable<Date>
init(person: Person) {
self.person = person
// what should go here in order to bind properties???
}
}
【问题讨论】:
标签: swift mvvm reactive-programming reactive-cocoa reactivekit