2009-11-04 82 views

回答

4

這個習慣用法是我們在其他語言中稱之爲「回調」的方式通常是在ObjC中完成的。一個班級需要對特定情況做出反應(讓我們說點擊鼠標)。該類是相當通用的,而不是用任何特定領域的知識編碼的,因此該行爲的策略不是由該類編寫的。因此,它需要將該行爲「委託」給您的代碼。所以它在你指定的對象上調用一個方法。由於您的代碼可能知道當您單擊鼠標時想要執行的操作。

顯然,這種模式甚至有一篇維基百科文章,由喜歡爲模式賦予特殊名稱的人編寫。參見:Delegation pattern

4

「委託」不是Objective-C的一項功能。相反,它是Cocoa框架使用的常見模式。

其基本思想是當事件發生時,檢測該事件的對象不必處理它。相反,它會通知代表。

要了解詳情,請參閱Cocoa Fundamentals Guide

另見維基百科 「Delegation pattern」 的文章,它包括一個Objective-C示例。

0

例如,TableView UI組件處理顯示數據,如表格。然而,它顯示的不是他的責任的一部分,這種行爲可以通過使用委託來添加。 tableView有一個你可以設置的委託成員,如果該對象實現映射到tableView的委託方法的方法,它們將被調用,否則它們不會。這意味着你不需要實現所有的東西,只是你需要的東西。

相關問題