有没有人能用一个简单的编码示例来解释objective-c中的自定义委托?一步一步地

有没有人能用一个简单的编码示例来解释objective-c中的自定义委托?一步一步地,objective-c,ios7,delegates,Objective C,Ios7,Delegates,我是一个初学者,所以我需要一个自定义委托的简单示例。我们如何创建、使用和调用?请逐步解释。我知道这个问题以前问过很多次,但仍然很困惑。 提前谢谢 委托只不过是另一个对象的属性或ivar,可以调用它来执行特定的方法。 通常,会创建一个协议来定义此委托对象的可选和必需的方法声明,并且委托对象至少实现必需的方法声明 此API契约确保您可以依赖于将某些业务逻辑委托给委托对象。 您的对象不需要知道代理将如何做出决策。 它只向委托发送消息,如果返回任何结果,则可以依赖于结果 委托不需要知道它所委托的确切对象

我是一个初学者,所以我需要一个自定义委托的简单示例。我们如何创建、使用和调用?请逐步解释。我知道这个问题以前问过很多次,但仍然很困惑。

提前谢谢

委托只不过是另一个对象的属性或ivar,可以调用它来执行特定的方法。 通常,会创建一个协议来定义此委托对象的可选和必需的方法声明,并且委托对象至少实现必需的方法声明

此API契约确保您可以依赖于将某些业务逻辑委托给委托对象。 您的对象不需要知道代理将如何做出决策。 它只向委托发送消息,如果返回任何结果,则可以依赖于结果

委托不需要知道它所委托的确切对象,除非方法将其作为参数包含在内

其思想是代理可以知道其他对象不需要知道的事情

本质上,它使委托趋向于控制器类,但并不总是这样

它使视图和控件等对象具有通用性和可重用性

它还支持事件驱动的程序,其思想包括“嘿,代理,我现在应该这样做吗?”或“嘿,代理,我应该显示什么样的东西?X、Y或Z?”或“代理,给我一个在ABC标准下对您有意义的对象”

NSMenuDelegate是一个很好的例子
nsapplicationelegate
uiapplicationelegate
都是很好的例子


NSTableView
UITableView
(以及其他集合视图)也提供了很好的代表示例。它们还展示了该模式如何使用包含“DataSource”等内容的其他名称来执行更具体的操作,如为集合提供数据

代表没有什么神奇之处。它只是一个对象,您可以将其地址传递给其他对象(如表视图),这些对象以后可能需要信息。当另一个对象需要信息时,它调用第一个“委托”对象的方法来获取该信息。通常,委托的接口是由“协议”而不是类接口定义的,但这是一种方便,对概念来说并不重要。