protocol的基本使用
1,格式:
@protocol 协议名称 <NSObject>
协议内容
@end
2,协议的使用,
@interface 类名 : 父类名 <协议名,协议名2>
@end
然后再.m方法中实现协议里声明的方法,当遵守多个协议时,多个协议以逗号隔开.
3,使用注意.
1,protocol就是用来声明方法,不能声明成员变量,也不能实现方法.
2,只要某个类遵守了这个协议,那么就拥有了这个协议的所有方法声明.
3,只要父类遵守了这个协议,那么子类也遵守了.
4,Protocol里的方法可以让任何类去实现,Protocol只是声明.
5,OC不能继承多个类,但是可以遵守多个协议.
6,<NSObject>是基协议,是最基本最根本的协议,其中声明了很多基本的方法.
7,协议可以遵守协议,当一个协议遵守了另一个协议,就可以拥有另一个协议中的方法声明.
4,Protocol中的关键字
@required和@optional是Protocol中的两个关键字.
@required修饰的方法声明是必须实现的,这个关键字也是默认的.
@optional修饰的方法声明可以不用实现.
5,Protocol的类型限制
1,给id类型的限制
使用id存储对象时,给对象类型的限制: id<协议A> 变量名; 例:
就是需要给变量baomu传一个遵守协议<zhaogubabyProtocol>的对象.
2,给对象的限制
当对象类型遵守协议时,可以赋值的对象既要是同一个类型,又要遵守协议.
3,关联关系下,对象的类型的限制问题.
当一个类的对象是另一个类的成员变量时,需要遵守协议才能赋值.
6,Protocol的代理设计模式
1,代理模式的概念:传入的对象,代替当前类完成某个功能,称为代理.
利用协议实现代理模式的主要思路为:
1)定义一个协议,里面声明代理类需要实现的方法列表.
2)创建一个代理类,遵守上面的代理协议.
3)在需要代理的类中,定义一个对象类型为id且遵守代理协议的成员变量.
4)在需要代理的类中调用成员变量_delegate(代理)的方法,调用代理类的方法.
5)main.m或其他使用需要代理的类的文件中,为需要代理的类的成员变量(代理类)赋值.
protocol的基本使用与代理设计模式的应用
最新推荐文章于 2021-03-16 14:12:50 发布