协议代理

设计模式:

为什么要设计模式:帮助我们快速的健壮的开发程序 (解决某个实际的问题)

Protocl协议:相当于Java里面的接口  提供一系列方法 不需要实现  谁服从谁实现

如果需要使用某个协议提供的方法,就需要使用方法的这个类去服从协议 <>服从  协议可以服从多个协议<a,b>

声明协议的方法:

类服从协议:

代理实现租房:

代理实现数据回调:

1.定义一套协议

2.定义一个属性变量记录服从协议的对象

3.实现功能返回数据

调用者:

1.服从协议

3.创建对象 设置代理

2.实现协议里的方法

delegate中存在的问题:

1.@class 前向申明一个类.h 在具体使用这个类的地方需要导入头文件.m

    什么时候一定要用@class,在两个类A、B的头文件中,A导入B B导入A中导致循环引用

2.导入协议时要用import

导入协议的时候,如果使用@class 只是申明有这个类,但无法获知这个类里面到底有什么东西,如果需要获取类里面具体的内容 就必须使用import

3.对nil进行操作 只会不执行 不会报错,所以一定要记得设置代理人

如果释放一个对象 那么立刻将这个对象赋值为nil

4.属性变量delegate用assign修饰

不用strong防止循环引用 某些情况可以用strong   但不能是copy 

代理配置数据:

原文地址:https://www.cnblogs.com/kinghyt/p/11265400.html