[iOS] UITableView dequeueReusableCell

문득 궁금해짐

dequeueReusableCell(withIdentifier: String)
dequeueReusableCell(withIdentifier: String, for indexPath: IndexPath)

2가지의 차이가 뭔지.

가장 중요한 차이는 반환값이다

withIdentifier: 버전의 메소드는 nil을 리턴할 수 있지만

withIdentifier:,for: 버전의 메소드는 nil을 리턴할 수 없음

즉 셀의 식별자나 nib파일이 등록되어 있지 않으면

indexPath를 넘기는 버전의 메소드는 바로 충돌이 발생

WWDC2012에서 항상 초기화된 셀을 얻게 될것이라는 발언을 한적이 있다.

즉 nil을 반환하지 않는다는 이야기이고

해당 WWDC 컨퍼런스에서 withIdentifier:,for: 메소드는 셀이 해당 IndexPath에 적절한 크기가

될 것이라고도 언급을 하였음

추측하기로는 heightForRowAtIndexPath 메서드를 호출하여

반환하기 전에 셀의 크기를 설정하는 것을 의미하는 것 같음

이것이 이 메소드에 indexPath가 필요한 이유이지 않을까?

[참조]](https://stackoverflow.com/questions/25826383/when-to-use-dequeuereusablecellwithidentifier-vs-dequeuereusablecellwithidentifi)

태그:

카테고리:

업데이트:

댓글남기기