OC中的协议相当于Java中的接口。
协议实际上就是定义了一组方法,然后让其他类去实现这些方法。是多个类共享一个方法列表.协议中列出的类没有响应的实现,由其他类来实现。
协议的定义格式为:
@protocol 协议名 <父协议>
方法
@end
例如:
- @protocol protocol <NSObject> 注:这里NSObject不是NSObject类,而是NSObject协议,NSObject协议是OC中的第一个协议,NSObject类与NSObject协议命名相同在OC中互不影响。
如果类实现了多项协议,协议之间用逗号分开.
协议是无类的.任何类都可以遵守协议.
可以使用ConformsToProtocal:方法检查一个对象是否遵守某项协议
协议定义中有两个修饰符:
@required:有这个修饰符修饰的方法是其他类是必须实现的
@optional:有这个修饰符修饰的方法是其他类是可选实现的
注: 默认是@required
协议的使用: 直接在继承类(NSObject)后面 <协议名> 然后在.m文件里实现协议的方法即可。
例如:
- @interface Person : NSObject <协议名>