oc基础-protocol协议的使用
2015-05-17 16:19
281 查看
1.协议:就是用来声明一大堆方法的,供遵守这个协议的对象使用的
2.语法:
NSObject是所有协议的基协议,最好是所有协议都遵守基协议
3.类遵守协议,那么这个类默认情况下,就会拥有这个协议内的所有的方法
语法
4.协议遵守协议
语法
5.协议中声明方法的关键字
@required:在遵守某个协议时,必须实现该关键字修饰对方法(字面上是必须的,实际要求没那么严格),否则会有警告的(默认的)
@optional:可以实现也可以不实现该关键字修饰的方法
eg.@required
- (void) xxx;
6.在定义变量时,可以限制这个变量保存的对象去遵守某个协议
类名 <协议名称> *变量名 ; =》也就是说这个变量必须是某个类型的,并且这个类还必须遵守了这个协议的
id <协议名称> 变量名 ; =》id表示任意的oc对象类型,相当于NSObject *类型,
7.property声明属性时,也可也用协议限制该属性
@property(nonatomic,strong) id<协议名> 属性名; =》这是一种设计模式,这样这个属性类型可以是遵守了这个协议的任何一种类型
@property(nonatomic,strong) 类名<协议名> 属性名; =》定死是哪个类型的了,并且这个类必须遵守这个协议
8.定义协议的位置;可以是在一个单独的.h文件中定义(一般会有多个类去遵守的情况),也可以直接定义在摇遵守的那个类的.h文件中
9.@protocol:用于声明一个协议
类似于@class,仅时做一个声明,在编译的时候告诉编译器,并不包含文件里的内容,在需要使用文件的时候才import 文件
2.语法:
@protocol 协议名称 <NSObject,其他协议> //定义方法(仅时方法的声明) @end
NSObject是所有协议的基协议,最好是所有协议都遵守基协议
3.类遵守协议,那么这个类默认情况下,就会拥有这个协议内的所有的方法
语法
@interface 类名: 父类 < 协议名1,...> @end
4.协议遵守协议
语法
@protocol 协议名 <其他协议,...> @end
5.协议中声明方法的关键字
@required:在遵守某个协议时,必须实现该关键字修饰对方法(字面上是必须的,实际要求没那么严格),否则会有警告的(默认的)
@optional:可以实现也可以不实现该关键字修饰的方法
eg.@required
- (void) xxx;
6.在定义变量时,可以限制这个变量保存的对象去遵守某个协议
类名 <协议名称> *变量名 ; =》也就是说这个变量必须是某个类型的,并且这个类还必须遵守了这个协议的
id <协议名称> 变量名 ; =》id表示任意的oc对象类型,相当于NSObject *类型,
7.property声明属性时,也可也用协议限制该属性
@property(nonatomic,strong) id<协议名> 属性名; =》这是一种设计模式,这样这个属性类型可以是遵守了这个协议的任何一种类型
@property(nonatomic,strong) 类名<协议名> 属性名; =》定死是哪个类型的了,并且这个类必须遵守这个协议
8.定义协议的位置;可以是在一个单独的.h文件中定义(一般会有多个类去遵守的情况),也可以直接定义在摇遵守的那个类的.h文件中
9.@protocol:用于声明一个协议
类似于@class,仅时做一个声明,在编译的时候告诉编译器,并不包含文件里的内容,在需要使用文件的时候才import 文件
相关文章推荐
- 黑马程序员_OC基础13_协议protocol
- 黑马程序员_OC基础10_Protocol协议
- OC基础—protocol协议
- OC基础-protocol协议
- 黑马程序员——OC学习之协议protocol的使用
- OC 基础之—(NSDate, 类目 Category,协议Protocol, 延展,委托代理)
- 黑马程序员---OC基础---Block、分类Category、协议protocol
- 黑马程序员——OC基础---protocol(协议)
- oc 中协议 protocol 的使用
- oc 中协议 protocol 的使用
- OC基础--分类(category) 和 协议(protocol)
- OC基础:协议Protocol
- OC--———协议protocol的基本使用
- OC转Swift之基础篇(四)--协议&扩展
- swift:使用协议protocol设置颜色,UIImage的切圆角ImageWithCornerRadius
- Linux 下网络协议分析器 Wireshark 使用基础
- 高通LK阶段使用模拟i2c--附i2c子协议smbus-protocol
- OC @protocol(声明协议 )
- iOS开发之OC篇(13)—— Protocol(协议)、Delegate(代理)
- Python基础(6)- 类和对象(使用、继承、派生、组合、接口、多态、封装、property、staticmethod、classmethod、反射、slots、上下文管理协议、元类)