《黑马程序员》 protopol代理模式(Objective - c语法)
一:protocol 协议
① 用来声明一些方法,不可以声明成员变量。
② 只要某个类遵守了一个协议,就说明这个类拥有这份协议里面所有的方法声明
③ 只要父类遵守了协议,那么子类也遵守了这份协议
二: 协议的定义
@protocol 协议名称
方法列表
方法列表
@end
三 :如何遵守协议
① 类遵守协议
@interface 类名:父类名<协议名1,协议名2>
// 只要这个类遵守类 协议1 和 协议2 那么这个类就拥有协议里面所有的方法声明
@end
Person.h 文件中 Person.m文件中
协议中:
② 协议遵守协议
@protocol 协议名称 <其他协议名称1, 其他协议名称2>
@end
MyProtocol 协议 MyProtocol 2 协议
四: 协议中的关键字
① required (默认)
其方法必须实现,如果没有实现就会报错
② optional
不要求实现,不管怎么样都不会警告
五: 定义一个变量的时候,限制这个扁郎保存的对象遵守某个协议
类名 < 协议名称 > *变量名
NSObject < 协议名称 > *obj
id < 协议名称 > 变量名
id < 协议名称 > obj2
六 :@property 中声明的属性也可以做一个遵守协议的限制
@property (nonatomic , strong ) 类名< 协议名称 > *属性名
@property ( nonatomic ,strong ) id < 协议名称 > 属性名
注:如果没有遵守就会警告
七 :协议可以定义在单独文件中,也可以定义在某个类中
① 如果这个协议只用在某个类中,应该把协议定义在该类中
② 如果这个协议用在很多类中,就应该定义在单独文件中