最近関わりを持ったプロジェクトで、Model、ViewModel、ViewControllerがあり、それぞれModelの変更をViewModelが、ViewModelの変更をViewControllerが監視していて、ReactiveCocoaによってバインディングされています。 ViewModelの変更によって呼ばれるメソッドがちょっと長くて、 func updateTableView() { ... tableView.reloadData() // 1 ... tableView.scrollTo(latestIndexPath) // 2 ... }
のようになっています。