【问题标题】:Kindly anyone explain custom delegates in objective-c with a simple coding example? Step By Step [duplicate]请任何人用一个简单的编码示例来解释objective-c中的自定义委托吗?一步一步[重复]
【发布时间】:2014-05-11 13:47:46
【问题描述】:

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

【问题讨论】:

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

标签: objective-c ios7 delegates


【解决方案1】:

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

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

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

这个想法是委托可以知道其他对象不需要知道的事情。

本质上,它使委托倾向于成为控制器类,但并非总是如此。

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

它还支持事件驱动程序,例如“嘿,代表我现在应该这样做吗?”或者“嘿,代表我应该展示什么样的东西?X、Y 还是 Z?”或者“代表给我一个在 ABC 标准下对你有意义的对象”

NSMenuDelegate 是一个很好的例子NSApplicatonDelegateUIApplicationDelegate 是很好的例子。

NSTableViewUITableView(以及其他集合视图)也提供了很好的委托示例。他们还展示了这种模式如何具有其他名称,其中包含诸如“DataSource”之类的内容,用于执行更具体的操作,例如为集合提供数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 2020-11-14
    • 2023-03-25
    • 2011-08-05
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多