ReactiveCocoa が v.3.0-RC.1 がでて、そろそろ製品に Swift で ReactiveCocoa が使えるようになりそうな感じになってきました。

いつも Signal を自分で制御するイディオムを忘れてしまうので、メモ書きです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import Foundation
import UIKit
import ReactiveCocoa

class MyViewModel {
    let (changed, sink) = Signal<Void, NoError>.pipe()

    func doAction() {
        // do something
        sendNext(sink, ())
    }
}


class MyViewController : UIViewController {
    let viewModel = MyViewModel()

    override func viewDidLoad() {
        super.viewDidLoad()

        viewModel.changed |> observe(next: debugPrintln)

        viewModel.doAction()
    }
}