1.声明协议
关键字:@protocol
eg:
@protocol NSCoping //协议名称 -(id) copyWithZone : (NSZone *) zone; @end
2. 使用协议
@interface Car : NSObject<NSCoping,NSCoding> { //instance variables } // methods @end //Car
可以实现多个协议,NSCoding 声明省略。
Objective-C 2.0增加了两个新的协议修饰符:@optionnal和@required,默认是@required
@protocol MyProtocol - (void)requiredMethod; @optional - (void)anOptionalMethod; - (void)anotherOptionalMethod; @required - (void)anotherRequiredMethod; @end//MyProtocol
Objective-C通过类遵循的协议和类继承的超类来定义类的类型。您可以通过发送conformsToProtocol:消息来检查一个类是否遵循特定的协议:
if ([anObject conformsToProtocol:@protocol(MyProtocol)]){
// do something appropriate
}