@protocol协议定义和遵守
来源:互联网 发布:网络系统集成案例 编辑:程序博客网 时间:2024/06/05 02:24
@protocol(协议)类似于JAVA的interface(接口),不同的是协议的方法可以不实现也可运行程序,java接口没有实现会报错导致程序无法运行。
PS:这是由于oc属于弱语法类型
协议中不可声明实例变量,只有声明方法且不能实现方法,遵守协议的类表示该类已经包含该协议的方法声明,只需要在类对应的.m文件中实现便可;
@protocol协议定义可定义在单独的文件中以delegate(代理)结尾的.h文件中也可定义在类的声明文件中,由于协议常常与代理挂钩,所以多数协议以delegate结尾
协议定义格式如下:
1、协议定义格式:
@protocol<NSObject> //<NSObject>表示遵守NSObject基协议,协议可互相遵守,属于协议扩展,多个协议可在<xxx,xxx,xxx,xxx>括号内使用逗号分隔开,
//声明方法列表
//[]中表示选择性的添加,可以不添加
[@required(默认)] //协议关键字
//要求实现的方法列表,不实现会发出警告,由于oc是弱语法类型,所以程序会执行
[@optional] //协议关键字
//不要求实现的方法选择性实现
@end
2、协议的遵守(使用)格式:分两种:协议遵守协议(属于协议的扩张方式),类遵守协议(属于协议的使用)
//@protocol协议遵守协议格式
@protocol协议名称<其它协议名称,其他协议。。。>
//方法列表
@end
//@protocol类遵守协议格式
@interface 类名:父类名称<协议名称1,协议名称2,......>
//方法列表
@end
PS:遵守协议前需要在@interface前使用@protocol指令声明协议这与@class意义相同,只是告诉编译器有名为xxx这样的东西,但没有引入实体;
格式:@protocol 协议名称;
在所遵守协议类对应的@implementaion前面使用#import 引入所遵守的协议的实体
格式:#import "协议名称.h"
- @protocol协议定义和遵守
- Protocol 协议相关定义和操作方法
- Protocol Buffers定义协议格式
- 协议(protocol)和委托(delegate)
- 类遵守一个协议,协议中定义的@required方法可以不完全实现么?
- 类遵守一个协议,协议中定义的@required方法可以不完全实现么?
- UITextField遵守的协议
- 协议(Protocol)的用法和代码例子
- category (类别) 和 protocol (协议)
- 协议(Protocol)的用法和代码例子
- 黑马程序员_OC_block和protocol协议
- OC 协议(Protocol)的基本概念和用法
- Protocol 协议和Delegate代理模式
- block块和Protocol(协议)
- protocol协议
- Protocol 协议
- Protocol 协议
- protocol 协议
- Java程序员必知的10个调试技巧
- 批量文本处理
- 使用svn时出现is missing from working copy的警告
- c#播放声音文件
- Grand Central Dispatch(GCD)
- @protocol协议定义和遵守
- Wireshare常用过滤规则
- zzulioj1816: 矩形
- weblogic10异常:org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.
- errpt命令整理
- Linux安装php报错记录
- ActionBar溢出菜单的icon不显示的解决方法
- Grand Central Dispatch (GCD) Reference
- 四大 Java 内部类总结