------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
1.protocol的基本概念
在写java的时候都会有接口interface这个概念,接口就是一堆方法的声明没有实现,而在oc里面interface使一个类的头文件的声明,并不是真正意义上接口的意思,在oc中,接口时一个叫做协议的protocol来实现的。
2.protocol的使用流程
1)定义协议
@protocol 协议名称<NSObject> //默认遵守NSObject协议
//方法声明
@end
2)采纳协议
@interface 类名:父类<协议名称>
@end
创建类的时候遵守某个或者多个协议
@interface 类名:父类<协议名称1,协议名称2>
@end
某个协议也可以遵守某个或者某些协议
@protocol 协议名称<其他协议名称>
@end
@protocol 协议名称<其他协议1,其他协议2>
@end
利用协议实现代理模式主要思路:
1)定义一个协议,里面声明代理类需要的方法列表,比如这里一个代理类需要实现feedbaby与hongbabysleep方法。
2)创建一个代理类(比如baomu)遵守上面的代理协议。
3)在需要代理的类中,定义一个对象类型为id且遵守代理协议的成员变量。
4)在baby类中调用成员变量_delegate(代理)的方法,调用代理类的方法。
5)main.m或其他使用baby类的文件中,为baby类的成员变量(代理类)赋值。
protocol代理模式应用场合
*对象A发生了一些行为,想告知对象B(让对象B成为对象A的代理对象)
*向对象B监听对象A的一些行为(让对象B称为对象A的代理对象)
*当对象A无法处理某些行为的时候,想让对象B帮忙处理(让对象B成为A代理对象)