最近転職活動しており、企業の求人などをみていると「RxSwift」の文字を見かけることが多く、気になっていたが、時間が取れず、学習することができていなかった。ようやく時間が取れたので、公式のExsampleを触ってみました。ただ、概念を理解するには時間がかかると思い、まずは慣れることを優先しました。
RxSwift
公式のExsample
上記のリンクに、Exsampleがあるので、写経した後にコードの意味を調べながら、理解を深めることにしました。
sample.swift
import UIKit
import RxSwift
import RxCocoa/
class ViewController: UIViewController {
@IBOutlet weak var number1: UITextField!
@IBOutlet weak var number2: UITextField!
@IBOutlet weak var number3: UITextField!
@IBOutlet weak var result: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
//Observableで値の監視をスタート?
//combineLatestで値を随時、結合
//mapは全要素に適用したい時に使用する
//descriptionで文字型に変換
//bindで監視した値を縛り付ける
Observable.combineLatest(number1.rx.text.orEmpty, number2.rx.text.orEmpty, number3.rx.text.orEmpty){textValue1,textValue2,textValue3 -> Int in
return (Int(textValue1) ?? 0) + (Int(textValue2) ?? 0) + (Int(textValue3) ?? 0)
}
.map{ $0.description }
.bind(to: result.rx.text)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
Observableがどういった意味なのかがよくわかっていないですが、割と簡単にコードがかけた印象。
引き続き、Exsampleを写経しつつ、リファレンスを見ながら学習を進めたいと思います。