2010-07-24 29 views
5

使用委託我是一個新的iPhone程序員爲什麼以及在哪裏目標C

我創建無委託一些小意見.... 如果一個程序沒有代理運行,那麼爲什麼使用它們。他們需要什麼,我在網上看到了一些有代表的項目。

我很困惑,請回答。

+0

可能與http://stackoverflow.com/questions/3183146/what-do-mean-by-delegate-in-iphone-application和http://stackoverflow.com/questions/645449/how-to- use-custom-delegates-in-objective-c – 2010-07-24 14:01:58

+0

參見http://stackoverflow.com/questions/1349706/little-confused-on-delegates-in-objective-c – 2010-07-24 14:04:40

回答

10

委託是一種模式,允許某些對象在事情發生時通知另一個對象。許多代表方法分別以「will」或「did」開頭,它們分別在事件發生之前和之後被調用。

假設你有一個UITableView,你想知道用戶何時點擊一個單元,以便你可以處理他們的選擇。您將代表分配給實施委託方法tableView:didSelectRowAtIndexPath:的表視圖。

這種方法的好處是表視圖不必知道或關心這個其他委託對象是什麼或它是如何工作的。它允許產生事件的對象保持專注和清潔,只處理它自己的狀態。當它做了值得注意的事情時,它會發送一條消息給它的代表。而委託對象根本不需要知道任何其他對象的內部狀態。它只需要知道它做了一些重要的事情。

這很適合iPhone SDK的模型/視圖/控制器(MVC)方法。視圖應該只關心它是如何顯示自己的,而控制器是視圖的代表,當事物發生變化時。

使用委託進行編程不是必需的語言功能Objective-C。這只是SDK使用相當多的設計模式。但這是一個相當不錯的模式,可以幫助保持代碼清潔。

+0

非常感謝你mch – Saawan 2010-07-24 08:54:39

相關問題