티스토리 뷰

iOS

iOS) About dequeueReusableCell

행복하고 싶은 사람 2022. 12. 6. 17:34

tableView를 쓸 때 duequeueResuableCell을 보신 적이 있을겁니다

요런데서요

이 dequeueReusableCell이 무엇인지 알아봅시다! 

dequeueReusableCell

뭐하는 친구인가?

지정한 재사용 식별자에 대한 재사용 가능한 테이블 뷰 셀 객체를 반환하고 이를 테이블에 추가한다.

음..! 

선언을 보면 identifier와 index를 받아 UITableViewCell을 반환한다네요

 

identifier

A string identifying the cell object to be reused. This parameter must not be nil.

재사용할 셀 객체를 식별하는 문자열인데 nil이서는 안된다!

 

이친구는 재사용할 셀 객체를 식별하는 문자열이래요

 

indexPath

The index path specifying the location of the cell. Always specify the index path provided to you by your data source object. This method uses the index path to perform additional configuration based on the cell’s position in the table view.

indexpath는 셀의 위치를 지정한다. 데이터 소스는 셀에 대한 요청이 있을 때 이 정보를 수신하며 이를 전달해야한다. 이 방법은 인덱스 경로를 사용하여 테이블 뷰에서 셀의 위치를 기반으로 추가적인 구성을 수행한다

 

indexpath를 이용해서 데이터 소스에 요청을 보내나봐요

그니까 identifier로 나타낸 재사용할 셀 객체에 indexpath를 통해 데이터 소스에 요청을 보낸다 이렇게 이해가 되네요

 

뭐하는 친구인지를 알아봤으니 이제 왜 쓰는지를 알아봐야겠죠

 

dequeueReusableCell은 왜쓰나?

결론부터 말하면 dequeueReusableCell을 사용하면 메모리를 줄일 수 있기 때문입니다.

 

테이블 뷰는 테이블 높이와 셀 높이를 기반으로 정확하게 셀의 수를 생성한다고 합니다

화면에 담길 수 있는 셀의 개수는 10개라고 가정합시다. 이 시점에서 메모리 할당은 10개이므로 10개 셀 만큼의 메모리 할당만 이루어집니다. 그런데 여기서 스크롤한다면? 동일한 셀이 사용되고 데이터 소스를 기반으로 셀 내용만 바뀌게 된다고 합니다

밖으로 밀려난 셀은 reuse pool에 들어가게 되고, dequeueResuableCell을 호출할 때 테이블 셀에 의해 반환!

 

셀을 개수만큼 다 생성하는것 보다는 재사용 하는게 메모리를 훨씬 효율적으로 사용할수 있겠죠?

 

 

참고

https://zeddios.tistory.com/55

 

iOS ) TableView에서 dequeueReusableCell?

안녕하세요!! 저번에에 TableViewController에 대해서 배웠죠? 그 때 중간에 dequeueReusableCell이 뭔지 알려드린다고 했었는데.. 기억나시나요?뭔지 까먹으신 분들을 위해 보여드리자면, 저기의 dequeueReusab

zeddios.tistory.com

https://developer.apple.com/documentation/swiftui/viewbuilder

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함