iOS-协议、代理

      上次写了窗口的相关内容,突然觉得很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)实现协议里面的方法

iOS-协议、代理_第1张图片
iOS-协议、代理_第2张图片

然后就是让人难受又惊喜的代理了

代理又叫做委托--自己做不了或者不去做,让别人去做

代理的使用步骤:

*前三步 是写在 给别人值(帮别人做事)第二个页面

1、声明代理方法

2、声明属性接口

3、确定什么时候触发代理

*后三步写在接收数据的那第一个页面

4、导入类名代理名

5、挂上代理(*****是否能调用代理方法)

6、实现代理方法

具体代码量蛮多的,跟着步骤不难写出来,代码嘛 多敲几次记忆总比单看来的实在。我就偷把懒,略过了。

你可能感兴趣的:(iOS-协议、代理)