OC Protocol
来源:互联网 发布:淘宝关联营销怎样设置 编辑:程序博客网 时间:2024/04/29 05:34
- OC Protocol
- protocol 基本概念
- protocol 语法格式
- protocol 和 继承的区别
- protocol 使用注意
- 基协议
- required optional 两个关键字的使用
- 使用场景
- 代理设计模式
- 引申 private protected public
OC Protocol
1. protocol 基本概念
- protocol 翻译为 协议
- 在Java中有接客interface的概念, 接口就是一堆方法的什么没有实现,而在的interface是一个类的头文件的声明,并不是真正意义的接口的意思,在OC中是有一个叫protocol来实现的。
- protocol 可以用来声明一些必须实现或选择实现的方法,这个和Java中是完全不同的。
- protocol 的作用
- 用来什么一些方法
- 也就是说一个protocol是有一系列方法的声明来实现的。
2. protocol 语法格式
Protocol 的定义
@protocol 协议名称
// 方法声明列表
@end用类去遵守协议protocol
- 任何类只要遵守了协议protocol就相当于有了protocol所有方法的声明。
一个类可以遵守一个或者多个协议。
@interface 类名:父类 <协议名称1,协议名称2>
@end
- 协议也可以继承协议!
3. protocol 和 继承的区别
- 继承之后就默认有了实现,而protocol 只有声明没有实现
- 相同类型的类中可以使用继承,比如老师学生都可以继承自人。但是不同类型的类只能使用协议Protocol。
- protocol可以用于存储方法中的什么,将多个类共同的方法抽取出来,以后让这些类去遵守协议即可。
4. protocol 使用注意
- protocol 就一个用途,就是用来存放一堆方法的声明,不能写实现,也不能声明属性、成员变量。
- 只要父类遵守了协议,子类就也遵守。
- OC中不支持多继承类, 但是可以继承多个协议,尖括号内用逗号隔开。继承是冒号:
- 协议可以遵守协议, 只要B协议遵守A协议, 遵守B协议的类C 就同时拥有了AB协议的所有方法声明。
-
创建一个类建议继承 NSObject
创建一个协议建议遵守 @protocol < NSObject >;
5. 基协议
- NSObject 是一个基类 ,最基本最根本的类,所有的类最终都是继承NSObject ;
- @protocol < NSObject > 是基协议,是最基本最根本的协议。
- 建议每个协议都遵守 @protocol < NSObject > 协议。
6. @required @optional 两个关键字的使用
- @required 是必须实现的方法。
- @optional 是必须实现的方法。
- 如果没有任何关键字修饰的方法,默认情况就是@required 必须实现的。如果类中没实现该方法,就会警告缺少该方法!
- @optional 没有实现不会警告
- 作用范围 出现开始 到 下一个关键字为止,用于程序猿交流。
7. 使用场景
- 注意 变量赋值的时候 ! // 创建wife的时候直接在wife右边要求满足协议。 协议使用第一个应用场景,可以将协议写在数据类型的右边,明确表示如果要给该变量赋值, 必须要该对象遵守这个协议
- 注意 成员属性定义时 可以写入协议//类的声明中! 注意 类型限定一定是写在类型数据的右边!!!
- 注意 虽然接收了某一个对象的时候,对这个对象进行了类型限定(限定其必须实现某个协议),但是并不是意味着对象就真的实现了协议里的方法。所以要在调用对象的协议方法时候进行一次验证。
防止光说不做 赖皮!
if([self.wife respondsToSelector(cooking)]){ [self.wife cooking]}
- 设定场景
- 某程序猿要找一个媳妇 ,要求会做饭,会洗衣服,有国企工作的漂亮女生。
- 满足条件的女生都可以向他发送消息。
@protocol wifeCondtion < NSObject >-(void)cooking;-(void)washing;-(void)job;@end//协议使用第一个应用场景,可以将协议写在数据类型的右边,明确表示如果要给该变量赋值, 必须要该对象遵守这个协议wife < wifeCondtion > * wifeName =[[ wife alloc]init];@interface Person : NSObject//注意 类型限定一定是写在类型数据的右边!!!@property (nonatomic,strong)Wife < WifeCondtion> * wife;@end
8. 代理设计模式
* 引申 @private @protected @public
2015-04-03 21:36:19 Write By MarkDown © Yun.
0 0
- OC-Protocol
- 【OC】Protocol
- OC --- Protocol
- OC protocol
- OC-protocol
- OC Protocol
- OC之【@protocol协议】
- 7、协议protocol-OC
- 7、OC Protocol协议
- OC一protocol
- OC中Block、protocol
- OC中的protocol
- OC--block,@protocol协议
- oc的协议(protocol)
- OC语言中的protocol
- OC中的协议protocol
- OC语言--Protocol
- oc -8 Block protocol
- 关于OptionsMenu展现出菜单时,不能监听到onKeyDown问题
- # Mysql 1093 delete删除时报错解决
- 斐波那契数列,大数据
- lightoj 1321 Sending Packets
- Masonry练习详解
- OC Protocol
- Python list 之 append 和 extend
- Mybatis SQL处理大于小于等特殊符号的替换符号
- .NET 开发中SQL Anywhere 数据库的使用介绍
- 【华为 OJ】 提取不重复的整数
- recycleview获取第一个和最后一个可见item的位置
- 动态设置ListView组建的高度
- python爬虫(python下载20160804)
- 安装vsftpd