나는 tableview 데이터 소스를 빈번하게 업데이트하려고하며, datview 업데이트와 테이블 뷰 업데이트를 올바르게 동기화해야합니다. 스위프트 3에서 이에 대한 올바른 접근법을 제안 할 수 있습니까?데이터 소스 업데이트를 threadview 안전과 함께 tableview reload와 동기화하는 방법은 무엇입니까?
()이 코드 tableView.reloadData에서
func refreshForUpdates() {
DispatchQueue.main.async {
self.updateApprovalListBackgroundGraphics()
self.tableView.reloadData()
Log.debug("refresh cards Reloaded")
}
}
/// Main list viewmodel refreshing and filtering API
private func refreshCards(withIcon icon: CardIcon) {
queue.async {
Log.debug("refresh cards Started")
switch icon {
case .all:
self.loadOpenCards()
self.loadCompletedCards()
default:
self.filterOpenCards(byIcon: icon)
self.filterCompletedCards(byIcon: icon)
}
// Ask list TVC to reload table
self.listTVC?.refreshForUpdates()
Log.debug("refresh cards Finished")
}
}
ListTableViewController ListViewModel가 주 스레드에서 비동기 파견되어 있기 때문에 뷰 모델 새로 고침을 기다리지 않습니다.
언제 refreshForUpdates()를 호출합니까 ?? –
모델이보기 컨트롤러에 대해 알고있는 이유는 무엇입니까? 그것은 거꾸로입니다. – rmaddy
@Tushar Shama : 행 뒤의 뷰 모델에서 TVC가 테이블을 다시로드하기 위해 TVC를 호출합니다. –