빙수왕의 개발일지

RxSwift 테이블뷰 다시 바인드할 때 오류 본문

개발/iOS

RxSwift 테이블뷰 다시 바인드할 때 오류

빙수킹 2021. 7. 8. 00:36

문제상황

한 tableView 안에서 어떤 상태 flag 값에 따라 셀 class와 뿌려지는 내용(리스트)를 바꾸고 싶었다.

-> 다시 바인드를 했다.

-> 오류가 났음!

 

오류 내용

Maybe delegate was already set in xib or storyboard and now it's being overwritten in code.

 

해결방안

dataSource와 delegate를 초기화시킨 후 다시 bind해줘야 한다.

tableView.delegate = nil
tableView.dataSource = nil

 

수정 전 코드

 

 

수정 후 코드

 

중복으로 붙여넣었지만.. 아무튼 중요한건 

bind를 다시 해주기 전, delegate와 dataSource에 nil을 넣어줘야 한다는 것이다.

 

 

출저

https://github.com/RxSwiftCommunity/RxDataSources/issues/185

 

How to change datasource and rebind to tableview · Issue #185 · RxSwiftCommunity/RxDataSources

I change the datasource and rebinding to tableview. cause this assert error assertion failed: This is a feature to warn you that there is already a delegate (or data source) set somewhere previousl...

github.com