<A href="http://www.goodprogrammer.org/" target="blank">ios培训</A>------我的objective-c笔记,期待与您交流!
在Objective-C中,是不能实现多继承功能的,所以提供了协议。协议事实上是一组方法列表,它并不依赖于特定的类。使用协议可以使不同的类共享相同的消息。
1·定义
协议的定义
@protocol 协议名
@end
2·协议的创建
尝试创建一个协议ASD,单击“File”|“New File”命令,在弹出的选择文件类型对话框中选择“Objective-C protocol”选项,单击“Next”按钮。在弹出的创建分类对话框
中,输入协议的名称。单击“Next”按钮,在弹出的保存位置中我们选择的是默认的。再单击“Create”按钮协议就创建完成了。创建好的协议只有一个ASD.h文件
3·协议在类中的声明
@interface 类名:父类名< 协议名>
@end
4·所用协议声明方法
使用协议声明方法的的形式
@protocol 协议名
方法声明
@end
协议中的方法在类的实现文件中的实现形式
@implementation 类名
类和协议中声明方法的实现
@end
要在ABC.h文件中使用协议,就要以“#import”的形式将协议引入。如果不引入的话就会出现错误提示信息。
5·关键字
在声明协议方法时,可以使用两个关键字:一个是@required,另一个是@optional。
1)@required
方法可以是一个方法的声明也可以是多个方法的声明。在@required后的方法声明,是实现的协议的必须方法。如果没有指定@required关键字,协议中声明的方法都默认为必须实现的。
用@required关键字声明的方法,是实现协议的必须方法。如果方法没有被实现就会出现警告提示
2)@optional
方法可以是一个方法的声明也可以是多个方法的声明。如果没有声明@optional关键字协议中声明的方法都默认为是必须实现的。
@required和@optional这两个关键字是可以放在一起用的,是互不影响的。但是在协议中不能声明两个相同的方法。如果声明了两个相同的方法,程序就会出现错误提示信息
6·多个协议的使用
为了满足某些需求,在一个类中可能要遵守多个协议
如果在一个类中使用多个协议,就要用“#import”的形式将多个协议引入。