RxSwift:Swift的响应式扩展第2部分

在博客文章的第二部分中,我们将应用ReactiveX以便使用RxSwift创建示例iOS应用程序。

在第一部分中,我们探索其背后的理论以了解RxSwift,特别是ReactiveX。 您可以在此处签出第一部分。

我们将要构建的应用程序是电话目录。 该应用程序包含一个表,该表包含用户添加的所有联系人。 它还使用户可以添加新联系人。

我们使用RxSwift更新界面,同时在每个用户输入处验证联系人。 我们还应用了RxSwift来绑定我们的模型(联系人列表),并在表格中显示它们。

您可以在此处检查最终结果:

如您所见,当我们输入输入内容时,标签会更新存在的剩余错误并启用/禁用“保存”按钮。

为了获得此结果,我们为名称文本字段创建了一个可观察值,为数字文本字段创建了一个可观察值。

让名称= nameTextField.rx.text.orEmpty

.observeOn(MainScheduler.instance)

让数字= numberTextField.rx.text.orEmpty

.observeOn(MainScheduler.instance)

然后,我们将两者结合起来以创建一个Contact Observable。

let contact = Observable.combineLatest(name,number){(name,number)-> Contact in

返回联系人(姓名:姓名,电话号码:号码)

}

每次更新此联系人时,我们都会更新用户界面。

contact.subscribe(onNext:{contact in

self.updateUI(与:联系人)

})

接触的验证和当前的错误在Observable之外。

您可以在此处查看完整的项目。