首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Objective-C中的嘱托事件模型

2012-07-24 
Objective-C中的委托事件模型委托模式很重要,比如官方交互API,委托模式使用的很常见,比如UIViewsetAnimati

Objective-C中的委托事件模型

委托模式很重要,比如官方交互API,委托模式使用的很常见,比如UIViewsetAnimationDelegate,设置动画的委托。不理解委托模式,就不能很快的理解很多API的使用,因为它们使用一样的模式,了解这个模式,就会心领神会,立即上手。

下面用通俗的话说说委托模式是干什么用的。实际上Objective-C中 的委托模式,类似于Java中的回调(CallBack)机制,或者说监听器机制。再或者说,类似JavaScript语言里面的onclick事件和函 数的作用。比如要实现点击一个按钮之后做什么事情,这里肯定有个视图类,有个控制类,无论你是使用什么语言和开发工具。视图类能知道用户什么时候点击了按钮,但是不知道点击了以后做什么,控制类知道点击按钮后做什么,而不知道何时用户会点击。那么,可以将控制类委托给视图类,当点击的时候视图类调用控制类。

如果使用过Java的Swing等做本地图形界面开发,应该知道在视图类中包含了大量的(匿名)内部类,或者要注册监听器,这些机制起到和Objective-C委托类似的功效。可以这样理解:监听器、(匿名)内部类是实现怎么做的部分,但是不知道何时会发生事情,视图类在事件发送时调用监听器、(匿名)内部类,视图类是知道何时发生事情的。这样结合在一起,就是一次完整的事件响应。


现在就用Objective-C中的委托事件模型实现下面的功能

现在要实现的功能如下:有一只狗,当他遇到敌情的时候,会发出叫声,并且让他的主人知道。

 

一、正式协议和委托:

Dog类和Person类之间,通过一个协议DogBark进行通信。具体类的内容如下:

Dog类


测试结果和正式协议实现一样。

热点排行