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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

本帖最后由 lixiangzhou 于 2014-3-24 15:09 编辑

协议可以定义在单独的文件中(这个好理解)。

也可以和其他文件一起定义(这种情况下,协议只适合该文件中得类)
  1. #import <Foundation/Foundation.h>

  2. @protocol DogProtocal <NSObject>
  3. - (void)run;
  4. @end

  5. @interface Dog : NSObject <DogProtocal>

  6. @end
复制代码
也可以直接像下面这么写
  1. #import <Foundation/Foundation.h>

  2. @interface Dog : NSObject
  3. - (void)run;
  4. @end
复制代码
既然如此,定义在内部的协议的方法可以直接写在类的声明中,那么定义在内部的协议有什么其他的意义呢???





评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

2 个回复

倒序浏览
协议的基本用途:1.可以用来声明一大堆方法(不能声明成员变量)2.只要某个类遵守了这个协议,就相当于拥有这个协议中的所有方法声明3.只要父类遵守了某个协议,就相当于子类也遵守了!
定义在内部的协议,我觉得跟内部类和局部变量的意义差不多的

评分

参与人数 1技术分 +1 收起 理由
jing迪 + 1

查看全部评分

回复 使用道具 举报
牧之 发表于 2014-3-20 12:51
协议的基本用途:1.可以用来声明一大堆方法(不能声明成员变量)2.只要某个类遵守了这个协议,就相当于拥有 ...

谢谢,那内部协议有存在的必要或是意义吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马