테이블 뷰 객체에 테이블 뷰를 구성하고 수정하는 데 필요한 정보를 제공한다.

선언

protocol UITableViewDataSource

  • 인스턴스메서드

tableView(_:numberOfRowsInSection:)

반드시 정의해야 하는 메서드

테이블 뷰의 지정된 섹션에 있는 행 수를 반환하는 메서드

선언

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int

  • 인스턴스메서드

tableView(_:cellForRowAt:)

반드시 정의해야 하는 메서드

테이블 뷰의 특정한 위치에 삽입할 셀을 반환하는 메서드

셀에 텍스트나 이미지를 삽입할 때 주로 사용!

선언

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell

일반적인 형태

재사용큐를 위한 반환값을 받아서 원하는 클래스로 형 변환한 후, 화면에 표시하고자 하는 내용을 연산한다. 그리고 해당 인스턴스를 반환한다.

  • UITableView의 인스턴스메서드

dequeueReusableCell(withIdentifier:for:)

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

선언

func dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell

ios는 테이블의 내용을 표기하기 위해 항상 모든 내용을 연산해서 보여주는 것이 아닌 재사용의 형태를 갖게 된다.

테이블뷰는 화면에 표시된 내용은 재사용을 위한 목록으로 저장하고 있다가 해당 행이 다시 표시될 떄는 저장되어 있던 내용을 보여준다.

그럴때 이 메소드를 사용하게 된다.

재사용을 위한 내용이 있을 경우 그 내용을 전달받고 그렇지 않을 경우 새로 작성하게 된다.