OC_protocol协议介绍(1)
来源:互联网 发布:秦淮区网络问政 编辑:程序博客网 时间:2024/06/09 13:49
1 protocol的概念
java中有interface接口这个概念,接口就是一堆方法的声明没有方法的实现,而在OC里面,Interface是一个类的头文件的声明,并不是java中接口的意思。但是OC中也有接口这种用法,是由一个叫做协议的Potocol来实现的。
java中接口声明的方法,如果一个类实现了这个接口,就必须实现这个接口的所有方法。而OC可以在protocol中声明一些选择实现的方法。@requird, @optional。
2 protocol的基本使用
. 定义协议:
@protocol Run <NSObject> (协议默认要采纳NSObject的协议)
@required
- (void) eat;
@optional
- (void) run;
@end
采纳协议: (采纳协议要先把需要采纳的协议引入过来)
#import "Run.h"
@interface Person :NSObject<Run>
@end
实现协议中的方法:
#import "Person.h"
@implementation Person
- (void) eat{ //必须要实现的方法
NSLog(@"eat....");
}
- (void) run{//选择实现的方法
NSLog(@"run...");
}
@end
3 protocol的使用注意
1) protocol:就一个用途,用来声明一大堆的方法(不能声明成员变量),不能写实现
2) 只要某个类遵守了这个协议,就拥有了这个协议中所有方法的声明
3) 只要父类遵守了某个协议,那么子类也遵守
4) OC不能多继承,但是可以遵守多协议 继承(:) 协议(< >)
5) 基协议: <NSObject> 是基协议,是最根本最基本协议,其中声明了很多最基本的方法。
6) 协议可以遵守协议,一个协议遵守了另一个协议,就可以拥有另一份协议中的方法声明。
4 protocol类型限制
情景:想找一个会做饭,会洗衣服的女朋友
houseHold.h
@protocol houseHold<NSObject>
-(void) zuoFan;
- (void) xiyifu;
@optional
- (void) job;
@end
1) 使用id存储对象时,对象的类型限制
//这样写,表示只要是个人都满足条件,不满足题意
id girlFriend = [[Person alloc] init];
//下面写法表示,赋值给girlFriend的对象必须采纳了houseHold协议
//如果不满足则给出警告
2)对象赋值时类型限制
3)对象关联关系下,对象的类型限制
情景: 人拥有一条会算数的狗
dogProtocol.h
@protocol dogProtocol <NSObject>
- (void) mod;
@end
0 0
- OC_protocol协议介绍(1)
- OC_protocol协议介绍(2)
- OC_Protocol(协议)
- Gnutella协议(1) 介绍
- RTSP协议介绍1
- HTTP协议(1)入门-协议介绍
- 3.3.1 TCP协议介绍
- 1K Xmodem协议介绍
- 1K Xmodem协议介绍
- sip标准协议介绍 1
- USB协议介绍[1]-基础知识
- 【http协议】协议介绍
- 基于SIMPLE协议的Presence介绍[1]
- 互联网协议基本介绍 (1)
- Keepalived笔记-VRRP协议介绍(1)
- LoRaWAN协议中文版 第1章 介绍
- 【协议分析】Syslog协议介绍
- 【协议】IIC总线协议介绍
- LeetCode OJ 系列之122 Best Time to Buy and Sell Stock II --Python
- 普通排序--冒泡排序
- Windows Server 2008 部署webservice(C# .Net)
- BLE睡眠分析(一)
- Apache Commons 工具类介绍及简单使用
- OC_protocol协议介绍(1)
- 站长留言
- Nginx服务器的功能模块
- Camera.culling mask
- 【读书笔记】iOS-iCloud编程
- iOS-Core-Animation-Advanced-Techniques
- 预编译头文件
- MANIFEST.MF 文件内容详解
- poj 1790.The Game