Delegate 與 Protocol

在閱讀這一章之前,相信你應該已經寫過一些簡單的 iOS 程式,知道如果我們想要一個像是系統設定(Setting.app)那樣的表格介面,我們會建立 UITableViewController 的 subclass,這個 controller 的 view 是 UITableView

當我們想要設定表格中的內容,像是這個表格中有多少個 section、每個 section裡頭有多少 row、每個 row 裡頭又是哪些內容…我們不是直接呼叫 UITableView的 method,像是呼叫 [myTableView setSectionCount:3] 或是[myTableView setRowCount:3 atSection:4],而是去實作 UITableViewController 裡頭幾個像是 template method 的東西,像 numberOfSectionsInTableView:tableView:numberOfRowsInSection:等等。

為什麼不是直接去改變 view,而是 controller 要準備一些不知道會被誰呼叫的method?理由是:UITableViewControllerUITableView 的 data source與 delegate。那,什麼是 delegate?

用我的話來說,delegate 就是 將眾多的 callback,集中在一個物件上

如果你還不知道怎麼建立 Table View 或 Collection View,請先做完 Beginning iOS 7 Development Exploring the iOS SDK 這本書的第七章到第十章的相關練習。這本書好像中文只有翻譯出 iOS 5 的版本,叫做《探索 iOS 5 程式開發實戰》,不過章節位置差不多。

results matching ""

    No results matching ""