协议代理
设计模式:
为什么要设计模式:帮助我们快速的健壮的开发程序 (解决某个实际的问题)
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
代理配置数据: