OC语言--Protocol
2014-12-23 12:00
148 查看
一、protocol
协议的基本用途:
*声明方法,可以声明一大堆的方法,但不能声明成员变量;
*只要一个类遵守了谋一份协议,就能拥有这份协议中所有的声明;
*只要父类遵守了某个协议,则子类也相当于遵守了该协议。
*optional:声明的方法不要求实现
关键字的书写是为了程序员之间的交流
类名<协议名称> *变量名;
如果没有遵守对应的协议,编译器会警告,此时的警告为整条语句的黄色下划线
2、@property中声明的属性也可用做一个遵守协议的限制
@property (nonatomic, strong) 类名<协议名称> *属性名;
@property (nonatomic, strong) id<协议名称> 属性名;
@property (nonatomic, strong) Dog<myProtocol> *dog;
@property (nonatomic, strong) id<myProtocol> dog2;
*如果这个协议只用在某个类中,则应该把协议写在该类的.h文件中;
*如果这个协议可以被多个类使用,则应该把协议写在单独的.h文件中;
*一般情况下,都定义在单独文件中;
*定义在原来类中的分类,只需要了解就可以。
协议的基本用途:
*声明方法,可以声明一大堆的方法,但不能声明成员变量;
*只要一个类遵守了谋一份协议,就能拥有这份协议中所有的声明;
*只要父类遵守了某个协议,则子类也相当于遵守了该协议。
二、协议格式:
@protocol 协议名称 方法声明列表 @end @property myProtocol - (void)test; @end
三、类的协议格式:
@interface 类名:父类 <协议名称> //... @end @interface Student : Person <myProtocol> //遵守协议后Student中就有了test方法,在Student的实现中需要将此方法实现 @end @implementation Student - (void)test { NSSlog(@"遵守了myProtocol协议"); } @end
四、@protocol关键字
*required:要求声明的方法必须实现*optional:声明的方法不要求实现
关键字的书写是为了程序员之间的交流
五、多个协议
@property 协议名称 <协议名称1,协议名称2> @end @property myProtocol <protocol1, protocol2> @end
六、遵守协议
1、定义一个变量的时候,限制这个变量保存的对象遵守某个协议类名<协议名称> *变量名;
id<协议名称> 变量名; NSObject<myProtocol> *obj; id<myProtocol> obj1;
如果没有遵守对应的协议,编译器会警告,此时的警告为整条语句的黄色下划线
2、@property中声明的属性也可用做一个遵守协议的限制
@property (nonatomic, strong) 类名<协议名称> *属性名;
@property (nonatomic, strong) id<协议名称> 属性名;
@property (nonatomic, strong) Dog<myProtocol> *dog;
@property (nonatomic, strong) id<myProtocol> dog2;
七、协议位置:
*协议可定义在单独的.h文件中,也可以定义在某个类中;*如果这个协议只用在某个类中,则应该把协议写在该类的.h文件中;
*如果这个协议可以被多个类使用,则应该把协议写在单独的.h文件中;
八、分类位置:
*分类跟协议一样,也可以定义在单独的.h和.m文件中,也可用定义在原来类中*一般情况下,都定义在单独文件中;
*定义在原来类中的分类,只需要了解就可以。
相关文章推荐
- 黑马程序员---【OC语言】07block以及protocol
- 黑马程序员——10、OC语言(block、protocol和代理模式)
- 黑马程序员————OC语言BLOCK和Protocol总结
- IOS开发---OC语言-㉚protocol协议
- 黑马程序员——OC语言的protocol协议
- 【OC语言】第八天·block和Protocol
- 黑马程序员——OC语言——block、protocol、代理模式
- OC语言中的protocol
- OC语言的Block与Protocol(协议)
- 黑马程序员——OC语言基础篇---block和protocol
- OC语言——protocol
- 黑马程序员——OC语言------Block、protocol协议、代理设计
- OC语言-06-OC语言-block与protocol
- 黑马程序员-OC语言协议Protocol
- OC语言BLOCK和Protocol总结
- Oc语言之Protocol代理设计模式
- 黑马程序员——OC语言学习——ARC机制、block代码块、protocol协议、protocol协议的应用
- 黑马程序员——OC语言Protocol(协议)
- 黑马程序员——OC语言中的协议protocol
- ios 学习第十七天 OC语言 Protocol基本使用