2016-05-08 2 views
4

У меня есть массив (Observable<[_]>), который является источником данных для таблицы. Я хочу иметь возможность добавлять к нему новые элементы и обновлять tableview каждый раз, когда к массиву добавляются новые элементы. Я не могу найти, как добавлять новые элементы в Observable<[_]>.RxSwift: добавлять элементы к наблюдаемому <[_]>

ответ

9

Использовать Subject, например Variable. Затем просто обработайте свойство value как ваш Array и append, чтобы добавить новые элементы. Подпишитесь на Variable через asObservable().

Я упростил пример кода, используя String, однако вы захотите использовать какой-то UITableViewCell.

let dataSource = Variable<[String]>([]) 

dataSource.value.append("some string A") 

dataSource.asObservable() 
    .subscribeNext { e in 
     print(e) 
    } 
    .addDisposableTo(disposeBag) 

dataSource.value.append("some string B") 

После того, как у вас есть DataSource, вы хотите, чтобы подключить его к Tableview через

dataSource.asObservable().bindTo(yourTableView.rx_itemsWithCellIdentifier("MyCellClass", cellType: MyCellClass.self)) { (row, element, cell) in 
     // do your cell configuration here 
} 
Смежные вопросы