iOS委托的理解
来源:互联网 发布:淘宝人脸验证失败 编辑:程序博客网 时间:2024/05/29 18:48
转载: http://www.cnblogs.com/Camier-myNiuer/archive/2013/03/24/Camier.html
今天晚上才终于弄明白了协议,委托。 实际上协议和委托是分不开的。有协议就必须有委托。自己写好了协议(相当于接口),委托谁去实现呢。所以就必须有一个类去实现他。 那么这个类就成为了 委托对象。
话说,我们为什么要弄一个协议出来呢。我说说我的见解吧。 类A自己需要完成一个具体功能,但是这个功能的一些零部件在B类里面,所以A类就写一个协议,里面写上几个方法。然后让B类实现协议,即在@interface XXX <协议名>,然后在B类里面指定这个协议的一个委托对象。即 a(A类的一个对象).delegate = self; self即指的是本类(B)。那么 接下来要做的事情就是,在B类中去实现这个协议里面的几个方法。 现在呢,这个功能已经在B类里面实现好了,那么A类现在就能直接用了。A类具体怎样调用这个协议里面的方法呢? 我们应在A.h里面写一个 该id<协议名>类型的实例 或者 @property(nonatomic,assign) id <协议名>DDD;然后在去调用该协议中的方法。 我在这里插一句话,DDD 实际上指的是 实现该协议的类的对象。如果你听的有点儿糊涂,我给你换一句话,此属性用于指定实现该协议的对象。 需要理解的就是这么一点儿。下面写写协议具体的语法
声明协议:
@protocol 协议名
方法1;
方法2;
......
@end
举个例子:
@end
实现该协议
哪个类实现,就在那个类的@interface 类名 旁边的尖括号里面写上要实现的协议名。即<协议名>。
举个例子:
在该类里面如何指定委托对象呢,把声明协议的那个类,写一个对象。然后“.delegate” ,指定一个委托对象。
举个例子:
指定了委托对象后,在该类里面就要实现该协议里面的方法了。
举个例子:
在该类里面已经实现了功能,那么现在就要回到原来的那个类(即写协议的那个类)里面了,来实现协议方法。
怎样实现呢,前面已经说过了,
首先,需要声明一个id类型的实例变量或者声明一个属性,但是该id类型的变量声明有些特殊,因为需要在id之后加上用尖括号括起来的该协议名,这个我们大家应该能想通。
举个例子:
声明一个实例变量:
声明一个属性:
需要在.m里面
其次,再调用该方法。
举个例子:
或者
最终,就大功告成了。相信大家看完之后有些累了,建议再重新看一遍。就会理解协议与委托。
本人学术浅薄,若有错误,请不惜赐教。
- iOS委托的理解
- IOS 协议和委托的理解
- IOS -- Delegate委托 的 使用与理解
- 关于iOS 委托 代理 协议 的理解
- IOS - 理解委托 - delegate
- iOS委托理解
- iOS 委托Delegate和协议Protocol的理解和应用
- 快速理解ios的委托协议代理(delegate)
- 委托的理解
- 对委托的理解
- 关于委托的理解
- C# 委托的理解
- 委托的各种理解
- 委托的理解
- 关于委托的理解
- 关于委托的理解
- delegate委托的理解
- 委托的理解
- Subversion实践
- C++顺序容器的操作
- 关于1970-1-1 00:00.000的知识
- hdu 1003 Max Sum
- Spring 依赖注入失败原因
- iOS委托的理解
- ACDsee_14中文许可证秘钥
- 用php来分析筛选域名列表
- java使用代理访问网络
- 10012 - How Big Is It?
- [bxd学习java基本点]11.TreeSet的低层用的是二叉树
- 第六堂课后作业
- Spring 3.0 注解注入详解
- 设计模式C++学习笔记之九(Template Method模板方法模式)