내 영역 모델을 관찰하고 변경 사항을 테이블보기에 바인딩하면 작동합니다. 나는 테이블에 행을 추가하려고 할 때 나는 때문에, 이유 캐치되지 않는 예외 'NSInternalInconsistencyException'응용 프로그램 종료 약간의 충돌RxSwift + RxRealm + RxCocoa 행을 UITableView에 삽입하십시오.
이 : '섹션 0으로 행 1 을 삽입하는 시도 만 1 행이 업데이트 이후 섹션 0에 '
표준 대리자 메서드를 사용하지 않고 수행 할 수 있습니까?
여기 내 코드는 당신은 당신의 테이블을 업데이트하기 위해 서로 경주 두 구독을 가지고, 현재
let realm = try! Realm()
let places = realm.objects(Place.self)
Observable.from(places)
.bindTo(tableView.rx.items(cellIdentifier: "PlaceCell", cellType: PlaceCell.self)) { (row, element, cell) in
let viewModel = PlaceCellViewModel(place: element)
cell.setup(viewModel: viewModel)
}
.addDisposableTo(disposeBag)
Observable.changesetFrom(places).subscribe(onNext: { [weak self] result, changes in
if let changes = changes {
self?.tableView.beginUpdates()
let indexes = changes.inserted.map { IndexPath(row: $0, section: 0) }
self?.tableView.insertRows(at: indexes, with: .bottom)
self?.tableView.endUpdates()
} else {
self?.tableView.reloadData()
}
})
.addDisposableTo(disposeBag)