티스토리 뷰

iOS

iOS ) DataSource와 Delegate의 차이?

Zedd0202 2017. 7. 17. 20:41
반응형

 DataSource VS Delegate



DataSource는 데이터를 받아 뷰를 그려주는 역할을 한다고 생각하면 됩니다. 

너는 뭘 어떻게 보여줄거냐? 그것을 해주는것이 DataSource.

TableView를 예로 들자면, DataSource메소드로는, 

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell // return a cell ie UITableViewCell
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int // return a number ie an Int
func tableView(tableView: UITableView, titleForHeaderInSection section: Int) -> String? // return the title ie a String  

이런것들이 있습니다. 

하지만 delegate는 어떤 행동에 대한 "동작"을 제시합니다. DataSource는 "보여주는" 것들 담당했다면, delegate는 사용자가 그 보이는 부분중 어떤것을 클릭하거나 어떤 행동을 했을 때, 그 행동에 대한 동작을 수행하게 됩니다. 
역시 TableView로 예를 들자면, delegate메소드에는 
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: IndexPath)
func tableView(tableView: UITableView, willBeginEditingRowAtIndexPath indexPath: IndexPath)
func tableView(tableView: UITableView, willBeginEditingRowAtIndexPath indexPath: IndexPath)

이런것들이 있습니다. 이 row를 클릭하면 뭘 할래? 이런 것이죠.


반응형