7、OC Protocol协议
2014-02-21 11:59
435 查看
类似Java的泛型与接口的结合体,用于类型的<>中,可以多继承(按照OC的说法叫遵从某些协议)
1、定义协议
2、符合(实现)协议
3、使用并调用回调
最后
1、定义协议
@protocol Client <NSObject> -(void)defaultMethod;//默认必须实现 @required//必须 -(void)required; @optional//可选 -(void)optional; @end
2、符合(实现)协议
#import "Client.h" @interface JackClient : NSObject<Client> @end @implementation JackClient -(void)defaultMethod{ NSLog(@"this is defaultMethod"); } -(void)required{ NSLog(@"this is required method"); } @end
3、使用并调用回调
#import "Client.h" #protocol JackClient @interface Test : NSObject<Client>{ id<Client> client; } -(id)initWithClient:(id<Client>) client; -(void) turnTheCrank; @property(retain) id<Client> client; @end @implementation Test -(id)initWithClient:(id<Client>)client{ self = [super init]; if (self) { _client = client; } return self; } -(void) turnTheCrank{ [self.client defaultMethod]; [self.client required]; if ([self.client respondsToSelector:@selector(optional)]) {//可选回调可先判断是否实现,再调用 [self.client optional]; } } @end
最后
[[[Test alloc]initWithClient:[[JackClient alloc] init]] turnTheCrank];
相关文章推荐
- OC--Protocol 协议
- 15、黑马程序员-OC Protocol(协议)
- 黑马程序员——OC学习小结------arc,block,protocol(协议)
- OC基础:协议Protocol
- OC中的协议protocol
- 小白学开发(iOS)OC_ protocol(协议) (2015-08-09)
- 黑马程序员_OC基础10_Protocol协议
- OC基础--分类(category) 和 协议(protocol)
- 【OC语法】Protocol协议的介绍
- OC--———协议protocol的基本使用
- 7、OC Protocol协议
- OC语法<3.3> OC中特有的语法:Protocol协议
- OC Protocol----协议
- ⑨--OC中的block类型、协议Protocol的用法
- OC 基础之—(NSDate, 类目 Category,协议Protocol, 延展,委托代理)
- OC之Protocol (协议)
- OC 协议(Protocol)的基本概念和用法
- iOS开发之OC篇(13)—— Protocol(协议)、Delegate(代理)
- 黑马程序员——OC语言的protocol协议
- IOS开发-OC学习-protocol(协议)