有人可以解释一下委托在 iphone sdk 中到底是如何工作的吗......???
一个简单的示例如何使用委托以及使用委托的优点是什么。
委托模式 http://en.wikipedia.org/wiki/Delegation_pattern在iPhone SDK中被广泛使用。考虑以下示例:
您正在运行动画。底层系统为您处理动画。但是,您很自然地希望在动画结束时执行某些操作(例如,您希望在动画结束时激活按钮或显示一些文本)。现在动画系统如何知道动画结束时要做什么?毕竟这是您的自定义任务。因此,您将为动画配置一个委托,系统将在动画结束时调用该委托方法。显然,您将在此委托方法中执行自定义任务。
您有一个文本字段,您想知道用户何时点击或编辑了该字段中的某些内容。你怎么会知道这一点?您将为文本字段配置一个委托,当编辑或点击该特定字段时,UITextField 类将调用预定义的委托方法。
忘记 UIApllicationDelegate?系统负责加载和运行应用程序的工作。它如何告诉您初始化已完成并且您现在可以运行代码?它将调用应用程序委托的 applicationDidFinishLaunching 方法。
您正在发出异步 http 请求。加载数据后,将调用您的委托方法,以便您现在可以使用数据。
还有很多例子。为了使用委托,您需要指定委托对象,有时还需要指定选择器。到底需要做什么取决于你在做什么。也就是说,配置动画委托与配置文本字段委托不同。但一般过程是相同的,即您需要指定您的委托对象。
动画示例代码:
CATransition *animation = [CATransition animation];
[animation setDelegate:delegate]; // here delegate is your delegate object
动画结束后,您的委托对象的
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
will be called and you will do your customization in this method.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)