上次写了窗口的相关内容,突然觉得很low。low到我自己看到就起鸡皮疙瘩,我想对于但凡对于编程有些了解的人都应该知道哦。感觉像是1+1=2这么简单。其实我这样想不对,1+1到底等于几现在可是一个很深奥的问题。从数学角度来讲就是等于2。其他角度拥有各种答案。不扯了,进入正题。是我个人觉得非常难以明白的,但也是非常重要的一块儿知识,即协议与代理。
首先来说一下协议。
好处:节省代码量
协议:共同遵守的条约,可以不遵守,遵守了也可以不落实。听起来是不是觉得协议很绕,其实是我说的绕了。可以这样讲,协议就是制定共同实现的方法(如果不实现会警告但不会崩溃)
协议定义:
1、协议只有声明文件,只需要告诉人要遵守哪个方法,不需要指定具体怎么去实现。
2、协议有强制执行(@required)和选择执行(@optional),默认的是强制执行。
简单举一个例子,过马路时的红绿灯就是一个协议(对于好公民来说)。不多说,请看示例
@required//强制执行,默认的,不写就默认强制执行
- (void)redLight;
- (void)greenLight;
@optional//选择执行
- (void)yellowLight;
这是不是很明显了,协议是一个公共接口,只要遵守协议的类都可以使用这个接口。强制执行的必须实现,选择执行的自己决定是否实现。
声明协议的步骤:
1、创建声明协议:commcnd+N -> Object-c File ->选择Protocol(下面有图)
2、声明协议方法(示例见上)
3、遵守协议实现协议步骤:
(1)导入协议名#import"协议名.h"
(2)@interface类名:父类名<协议名>
(3)实现协议里面的方法
然后就是让人难受又惊喜的代理了
代理又叫做委托--自己做不了或者不去做,让别人去做
代理的使用步骤:
*前三步 是写在 给别人值(帮别人做事)第二个页面
1、声明代理方法
2、声明属性接口
3、确定什么时候触发代理
*后三步写在接收数据的那第一个页面
4、导入类名代理名
5、挂上代理(*****是否能调用代理方法)
6、实现代理方法
具体代码量蛮多的,跟着步骤不难写出来,代码嘛 多敲几次记忆总比单看来的实在。我就偷把懒,略过了。