我是目标C的新手。我想问为什么在目标C中需要“委托”。你能否为我提供具体的理由,情况和代码示例。如果有人能提供帮助我感激不尽
答案 0 :(得分:4)
“委托”不是Objective-C的功能。相反,它是Cocoa框架使用的常见模式。
基本思想是,当事件发生时,检测到该事件的对象不必处理它。相反,它会通知代表。
要了解详情,请参阅Cocoa Fundamentals Guide
另请参阅Wikipedia“Delegation pattern”文章,其中包含一个Objective-C示例。
答案 1 :(得分:4)
这个成语是我们在其他语言中称之为“回调”的方式通常是在ObjC中完成的。一个类需要对给定的情况作出反应(比如说鼠标点击)。该类是相当通用的,并且没有使用任何特定于域的知识编码,因此该操作的策略不是由该类编写的。因此,它需要将该操作“委托”给您的代码。因此它会在您指定的对象上调用方法。因为当您单击鼠标时,您的代码可能知道它想要做什么。
显然,甚至还有关于这种模式的维基百科文章,由那些喜欢为模式赋予特殊名称的人写的。请参阅:Delegation pattern。
答案 2 :(得分:0)
例如,TableView UI组件处理像表一样显示数据。然而,它显示的不是他的责任的一部分,可以通过使用委托添加此行为。 tableView有一个可以设置的委托成员,如果该对象实现了映射委托tableView方法的方法,那么它们将被调用,否则它们不会。这意味着您不需要实现所有内容,只需要实现所需。