码迷,mamicode.com
首页 > 其他好文 > 详细

protocol协议的使用

时间:2015-05-17 16:35:00      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

1.协议:就是用来声明一大堆方法的,供遵守这个协议的对象使用的

2.语法:

  定义协议  @interface  协议名称  <NSObject,其他协议>

        //定义方法(仅时方法的声明)

       @end

 NSObject是所有协议的基协议,最好是所有协议都遵守基协议

3.类遵守协议,那么这个类默认情况下,就会拥有这个协议内的所有的方法

  语法   @interface  类名: 父类 < 协议名1,...>

    @end

4.协议遵守协议

  语法  @interface 协议名 <其他协议,...>

       @end

5.协议中声明方法的关键字

   @required:在遵守某个协议时,必须实现该关键字修饰对方法,否则会有警告的(默认的)

   @optional:可以实现也可以不实现该关键字修饰的方法

 eg.@required

  - (void) xxx;

6.在定义变量时,可以限制这个变量保存的对象去遵守某个协议

  类名 <协议名称> *变量名 ;      =》也就是说这个变量必须是某个类型的,并且这个类还必须遵守了这个协议的

      id <协议名称> 变量名 ;            =》id表示任意的oc对象类型,相当于NSObject *类型,

7.property声明属性时,也可也用协议限制该属性

     @property(nonatomic,strong)  id<协议名> 属性名;  =》这是一种设计模式,这样这个属性类型可以是遵守了这个协议的任何一种类型

     @property(nonatomic,strong)  类名<协议名> 属性名;  =》定死是哪个类型的了,并且这个类必须遵守这个协议

8.定义协议的位置;可以是在一个单独的.h文件中定义(一般会有多个类去遵守的情况),也可以直接定义在摇遵守的那个类的.h文件中

9.@protocol:用于声明一个协议

    类似于@class,仅时做一个声明,在编译的时候告诉编译器,并不包含文件里的内容,在需要使用文件的时候才import 文件

10.分类:给某个类中的方法归类

 语法:

  定义:@interface   类名 (分类名称)

      //声明方法

     @end

  实现:@implementation  类名 (分类名称)

        //方法的实现

      @end

定义的位置和协议类似

 

protocol协议的使用

标签:

原文地址:http://www.cnblogs.com/hui1107464497/p/4509893.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!