深入理解iphone开发中的delegate

原创 2011年01月13日 10:32:00

先举一个例子:

 

假如"我"的本职工作之一是“接电话”,但"我"发现太忙了或来电太杂了,于是我聘请一位"秘书"分担我“接电话”的工作,如果电话是老板打来的,就让“秘书”将电话转接给“我”。。。

那么,“我”就是A Object.  “秘书”就是"我"的“Delegate”。写成代码就是 --   [我 setDelegate:秘书];

 

delegate的概念出现与mvc(model-view-controller),protocol,单线继承 密切相关

The main value of delegation is that it allows you to easily customize the behavior of several objects in one central object.

Cocoa 中处理事件的方式有几种,其中一种是你可以重载类中的对应的事件处理方 法,比如MouseDown事件在NSResponse类中就被方法mouseDown:处理,所以所有继承自NSResponse的类都可以重载 mouseDown:方法来实现对MouseDown事件的处理。

另外一种处理方式就是使用Delegate,当一个对象接受到某个事件 或者通知的时候, 会向它的Delegate对象查询它是否能够响应这个事件或者通知,如果可以这个对象就会给它的Delegate对象发送一个消息(执行一个方法调用)

 

 

协议 Protocol :

我说下我的理解。object-c 里没有多继承。那么又要避免做出一个对象什么都会(super class monster,huge ,super,waste)一个超能对象 本身是否定了面向对象的概念和真谛了。为了让代码更简洁,条理更清楚,可以将部分职责分离。

协议本身没有具体的实现。只规定了一些可以被其它类实现的接口。

 

delegate 总是被定义为 assign @property

 

这样我们就在UITextField内部声明一个委托(delegate),那么就需要委托的代理实现UITextFieldDelegate 中约定的行为

 

 

 

深入理解iphone开发中的delegate by hennychen

先举一个例子: 假如”我”的本职工作之一是“接电话”,但”我”发现太忙了或来电太杂了,于是我聘请一位”秘书”分担我“接电话”的工作,如果电话是老板打来的,就让“秘书”将电话转接给“我”。。。 ...

理解iphone开发中的delegate(委托)

理解iphone开发中的delegate(委托模式) iOSCocoaAppleHTML         委托是Cocoa中最简单、最灵活的模式之一。委托是指给一个对象提供机会对另一个对象中...
  • cubesky
  • cubesky
  • 2014年08月22日 11:39
  • 255

iphone开发中的delegate 其实是桥模式

先举一个例子: 假如"我"的本职工作之一是“接电话”,但"我"发现太忙了或来电太杂了,于是我聘请一位"秘书"分担我“接电话”的工作,如果电话是老板打来的,就让“秘书”将电话转接给“我”。。。 ...
  • weiqubo
  • weiqubo
  • 2012年04月09日 00:34
  • 3240

IOS开发(37)之iphone开发中的delegate

先举一个例子: 假如"我"的本职工作之一是“接电话”,但"我"发现太忙了或来电太杂了,于是我聘请一位"秘书"分担我“接电话”的工作,如果电话是老板打来的,就让“秘书”将电话转接给“我”。。。 ...

Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能

scrollView的属性有很多,我当初在研究scrollView的时候被它的contentOffset,contentInset等属性弄得纠结万分,昨天要写一个下拉刷新的demo,contentOf...

Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能

holydancer原创,如需转载,请在显要位置注明: 转自holydancer的CSDN专栏,原文地址:http://blog.csdn.net/holydancer/article/deta...

Iphone开发(十四)深入理解scrollView的contentOffset等属性,实现下拉刷新功能

scrollView的属性有很多,我当初在研究scrollView的时候被它的contentOffset,contentInset等属性弄得纠结万分,昨天要写一个下拉刷新的demo,contentOf...

深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)

转自:http://blog.csdn.net/dongfengsun/article/details/4799249 在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rm...

iPhone开发进阶(1) --- 深入理解iPhone OS/SDK与Objective-C 2.0

工欲善其事,必先利其器。在开发iPhone应用程序的时候,深入理解iPhone OS/SDK与Objective-C 2.0是很重要的。iPhone OSiPhone OS 由4个主要部分组成。下面简...

深入理解iPhone数据持久化(手把手教你iphone开发 - 基础篇)

作者:孙东风 2009-11-11(请尊重作者劳动成果,转载务必注明出处) 在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入理解iphone开发中的delegate
举报原因:
原因补充:

(最多只允许输入30个字)