《黑马程序员》 protopol代理模式(Objective - c语法)

一:protocol 协议

   ①   用来声明一些方法,不可以声明成员变量。

   ②   只要某个类遵守了一个协议,就说明这个类拥有这份协议里面所有的方法声明

   ③   只要父类遵守了协议,那么子类也遵守了这份协议

 

二: 协议的定义

   @protocol   协议名称

     方法列表

     方法列表

    @end

 

三 :如何遵守协议

   ①  类遵守协议

    @interface  类名:父类名<协议名1,协议名2>

     // 只要这个类遵守类 协议1 和 协议2 那么这个类就拥有协议里面所有的方法声明

    @end

Person.h 文件中                                               Person.m文件中

  

协议中:

  ② 协议遵守协议

   @protocol   协议名称 <其他协议名称1, 其他协议名称2>

   @end

MyProtocol 协议                                          MyProtocol 2 协议

  

 

四: 协议中的关键字

     ① required (默认)

          其方法必须实现,如果没有实现就会报错

     ②  optional 

          不要求实现,不管怎么样都不会警告

五: 定义一个变量的时候,限制这个扁郎保存的对象遵守某个协议

    类名 < 协议名称 >  *变量名

    NSObject < 协议名称 >  *obj

    id < 协议名称 > 变量名

    id < 协议名称 > obj2

六 :@property 中声明的属性也可以做一个遵守协议的限制

     @property (nonatomic , strong )  类名< 协议名称 > *属性名

     @property ( nonatomic  ,strong )  id < 协议名称 > 属性名

  注:如果没有遵守就会警告

 

七 :协议可以定义在单独文件中,也可以定义在某个类中

     ①   如果这个协议只用在某个类中,应该把协议定义在该类中

     ②   如果这个协议用在很多类中,就应该定义在单独文件中

 

posted @ 2015-03-25 01:31  画梦醉红尘  阅读(191)  评论(0编辑  收藏  举报