/*
跟swift的协议基本一样
用@optional来定义可以选的参数
*/
#import <Foundation/Foundation.h>
@protocol ProtocolName
@property int protocolProperty;
- (int)protocolMethod;
@optional //@optional之后的内容都是可选的,知道遇到@required为止
- (NSString *)protocolOptionalMethod;
@property NSString *pro;
@required
//在这个之前的,
@end
//在使用可选内容时,需要测试其是否被实现,测试方法为
NSString *thisSegmentTitle;
if ([self.dataSource respondsToSelector:@selector(protocolOptionalMethod)])
{
thisSegmentTitle = [self.dataSource protocolOptionalMethod];
}
//协议的继承
@protocol MyProtocol <OtherProtocol>
...
@end
//类只能单继承,协议可以多继承
@interface MyClass: NSObject <Protocol1, Protocol2>
...
@end