A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yuanlingqi 中级黑马   /  2014-11-10 20:47  /  1161 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

protocol的定义
》协议是一种特殊的程序设计结构,用于声明专门被别的类实现的方法。
》@protocol称为协议,类似java接口,但与接口又又区别,协议没有父类也不能定义实例变量。
》@protocol 协议名称 <NSObject>
     ----方法定义
     @end

如何遵守协议
》一个类可以遵守多个协议,尖括号里用逗号隔开
@interface 类名:父类名称 <协议名称1,协议名称2,...>
@end

协议之间的扩充
》一个协议可以扩充另一个协议,使用尖括号语法
@protocol 协议名称 <MyProtocolPre>
@end

protocol方法的修饰关键字
》@required-协议强制要实现的方法,这是默认修饰符;
》@optional-可选的实现方法;

其他
》创建的协议必须遵守基协议
》若父类遵守某份协议,则所有子类也会遵守
》基类默认遵守了基协议
》id相当于NSObject *

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

2 个回复

倒序浏览
当赋值需要限定实现了某协议的对象时,写法如下,这种写法类似java里的泛型用法。 NSObject<MyProtocol> *obj;
回复 使用道具 举报
协议可以直接写在类中,也可以独立文件,看协议的用途选择实现方式。(分类的实现也类似。)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马