gpt4 book ai didi

objective-c - Objective-C 中的代表

转载 作者:行者123 更新时间:2023-12-03 17:16:12 25 4
gpt4 key购买 nike

Possible Duplicate:
How does a delegate work in objective-C?

社区您好,

我一直在尝试理解 Objective-C 中委托(delegate)的概念。我尝试跟进文档,但是我正在寻找一些非常简单的示例来熟悉如何在委托(delegate)之间发送消息,如果我想创建自定义委托(delegate),我该如何进一步进行?

希望有人能让我更好地理解这个概念。

最佳答案

委托(delegate)的基本概念是将重要的决策或信息委托(delegate)给其他对象实例。

在大多数框架中,您使用子类化和重写方法来 Hook 应用程序流程。它有效,但缺点很多,例如:

  • 如果没有完整的新子类,您就无法更改决策者
  • 如果没有多重继承,您只能为一个对象(您自己)做出决定。

对象可能想要调用委托(delegate)有四个原因,这四个原因中的每一个都在委托(delegate)方法名称中使用关键字来表示这一点。这只是一个命名约定,但如果您想成为一个好公民,就应该遵循该模式。

  • 询问是否应该发生什么事情。例如:gestureRecognizer:应该ReceiveTouch:
  • 在不可避免的事情发生之前。例如:应用程序终止:
  • 发生某事之后。例如:加速度计:did加速:
  • 为了检索数据,这更像是一个数据源而不是委托(delegate),但两者之间的界限很模糊。该名称不包含已定义的名称,但应包含请求的命名数据片段。例如:tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposeIndexPath:

作为一般规则,任何委托(delegate)方法的第一个参数应该是请求委托(delegate)的命名对象实例。

关于objective-c - Objective-C 中的代表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5950640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com