【发布时间】:2018-10-01 20:44:55
【问题描述】:
我收到此错误:
assert(proxy === DelegateProxy.currentDelegate(for: object), "代理 从最初设置的时间开始改变。
原文:(代理)
现有: (String(描述:DelegateProxy.currentDelegate(for: object)))")
我有两个 observables 可以处理不同状态的 xib 故事板,但是一旦加载了其中一个,我就会收到上述错误,我尝试使用 self.tableView.delegate = nil & self.tableView.dataSource = nil,但它在 .bind(to:) 函数上导致了这种情况。我的问题是在这个错误之前我不知道如何处理它:
断言失败:代理从第一次设置开始就改变了。
原文:
.asObservable().bind(to:(tableView?.rx.items(cellIdentifier:
aTableViewCell.Identifier, cellType: HaTableViewCell.self))!
func initTableView() {
// pull to refresh
aViewModel
.isLoading
.asObservable()
.subscribe({ (loading) in
if loading.element == false {
} else {
self.tableView!.delegate = self // loads a shimmering view
self.tableView!.dataSource = self
}
})
.disposed(by: disposeBag)
aViewModel
.datas
.asObservable()
.bind(to:(tableView?.rx.items(cellIdentifier: aTableViewCell.Identifier, cellType: HaTableViewCell.self))!) { (index, element, cell) in
// when the data is fired load this tableview cell
}.disposed(by: disposeBag)
}
如何在数据 Observables 启动之前将 tableview 设置为 nil?
这是一个警告你已经有一个委托(或数据 来源)之前设置的某个地方。您尝试执行的操作? 将清除该委托(数据源),这意味着您的某些依赖于该委托(数据源)设置的 ? 功能可能会停止工作。如果您对此没问题,请尝试在此操作前将委托(数据源)设置为
nil。
【问题讨论】:
标签: swift uitableview observable rx-swift