【发布时间】:2011-08-22 11:31:12
【问题描述】:
大家好,
我一直在尝试理解 Objective-C 中委托的概念。我尝试跟进文档,但是我正在寻找一些非常简单的示例来熟悉如何在代表之间发送消息,如果我想创建一个自定义代表,我该如何进一步处理?
希望有人能让我更好地理解这个概念。
【问题讨论】:
标签: objective-c cocoa-touch cocoa
大家好,
我一直在尝试理解 Objective-C 中委托的概念。我尝试跟进文档,但是我正在寻找一些非常简单的示例来熟悉如何在代表之间发送消息,如果我想创建一个自定义代表,我该如何进一步处理?
希望有人能让我更好地理解这个概念。
【问题讨论】:
标签: objective-c cocoa-touch cocoa
委托的基本概念是将重要的决策或信息委托给其他对象实例。
在大多数框架中,您使用子类化和覆盖方法来挂钩应用程序流。它有效,但缺点很多,例如:
对象可能要调用委托有四个原因,这四个原因中的每一个都使用委托方法名称中的关键字来表示这一点。这只是一个命名约定,但如果你想成为一个好公民,你应该遵循这个模式。
gestureRecognizer:shouldReceiveTouch:
applicationWillTerminate:。accelerometer:didAccelerate:
tableView:targetIndexPathForMoveFromRowAtIndexPath:toProposedIndexPath:
作为一般规则,任何委托方法的第一个参数应该是请求委托的命名对象实例。
【讨论】:
Foo 可以背景,那么您可能拥有以下一项或多项:shouldFooEnterBackground:、@ 987654336@、fooDidEnterBackground: 和/或tokenForEnteringBackgroundWithFoo:。 Apple 有一个名为 PhotoPicker 的示例应用程序,这是一个很好的起点,它既使用 UIKit 中的委托,又定义/使用它自己的委托,所有这些都在两个小类中:developer.apple.com/library/ios/#samplecode/PhotoPicker