黑马程序员技术交流社区

标题: 内部协议的意义问题 [打印本页]

作者: lixiangzhou    时间: 2014-3-20 11:42
标题: 内部协议的意义问题
本帖最后由 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
复制代码
既然如此,定义在内部的协议的方法可以直接写在类的声明中,那么定义在内部的协议有什么其他的意义呢???






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

作者: lixiangzhou    时间: 2014-3-20 14:17
牧之 发表于 2014-3-20 12:51
协议的基本用途:1.可以用来声明一大堆方法(不能声明成员变量)2.只要某个类遵守了这个协议,就相当于拥有 ...

谢谢,那内部协议有存在的必要或是意义吗





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2