King of Stock
UITableView tableView.endUpdates() 오류 발생시 본문
UITableView 함수인 endUpdates() 호출할 때에 다음과 같은 오류가 발생하는 경우가 있다.
오류메시지:
Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Invalid update: invalid number of rows in section 0. The number of rows contained in an existing section after the update (14) must be equal to the number of rows contained in that section before the update (14), plus or minus the number of rows inserted or deleted from that section (0 inserted, 10 deleted) and plus or minus the number of rows moved into or out of that section (0 moved in, 0 moved out).'
혹은 브레이크 포인트 설정을 하지 않아서 Debug Area에 Continue program execution 버튼을 다다다다 눌러서 나온 메시지가 위에 것과 같다면
(제가 브레이크 포인트 설정을 했지만 로그가 나오게 하진 않아서 위와 같이 메시지를 매번 확인 했었지요... 훗)
테이블 뷰의 섹션의 행 개수와 실제 보여줄 섹션 개수가 맞지 않아서 발생하는 오류로 보면 됩니다.
아래는 위에 같은 상황이 발생하는 케이스를 간단하게 적어봤다.(정말 간단...)
코드를 보시면 특정 섹션의 행 개수를 정하는 데이터(배열이지요)는 삭제하지 않고 tableView.deleteRows 함수 호출후 tableView.endUpdates()가 호출 되는걸 볼 수 있습니다. 그러면 바로 위에 오류 메시지가 빡! 나오죠~
영어 정말 싫어요...
추가로 아래는 브레이크 포인트 설정시 메시지가 나오게 설정한 예시에요.
'IT 기술' 카테고리의 다른 글
Alamofire 사용하여 요청한 응답 결과를 기준으로 테스트 하기 (0) | 2018.04.05 |
---|---|
UITableView cellForRow(at:) (0) | 2018.04.04 |
xcode simulator 삭제 (0) | 2018.04.02 |
iOS 시뮬레이터 버전 업데이트 (0) | 2018.03.31 |
github jekyll 버전오류 발생시 (0) | 2018.03.29 |