zoukankan      html  css  js  c++  java
  • 第七讲:ObjC 协议 Protocol

    转:http://tigercat1977.blog.163.com/blog/static/2141561122012111294949110/

    第七讲:Obj-C 协议 Protocol 

    2012-12-12 09:49:49|  分类: Objective-C |  标签:objective-c  |字号 订阅

    主要内容
          什么是协议
          如何定义协议
          如何使用协议

    什么是协议
         协议是多个对象之间协商的一个接口对象
         协议提供一系列方法用来在于协议的实现者和代理者之间的一种通信方式
         协议类似于 C++ 中的纯虚函数,或者 java 中的接口

    协议声明
          头文件 Foo.h
         @pritocol MyProtocol <NSObject>
                  // 要定义的变量
                  - (void) init;
                  - (int) update:(int) time;
          @end


    协议
          Protocol 声明一系列方法,这些放在实现 Protocol 中实现
          协议方法可以实现 optional , 可选实现
          @required     // 某一个方法必须实现
          @optional    // 某个方法可以不去实现

          协议需要继承于 基协议 NSObject
          协议可以多继承


    协议声明
          头文件 Foo.h
         @pritocol MyProtocol <NSObject>
                  // 要定义的变量
          @optional   // 可选实现
                  - (void) init;
                  - (void) exit;
          @required  // 必须实现
                  - (int) update:(int) time;
          @end


    OC 定义协议和实现协议
          头文件 Foo.h
          @protocol MouseListener
          @optional
                  - (BOOL) mousePressed;
                  - (BOOL) mouseClicked;
          @end
          @protocol KeyboardListener
                  - (BOOL) keyPressed;
          @end

          @interface Foo: NSObject <MouseListener, KeyboardListener>
          {
          ......
          }
          @end

    一个简单协议例子
       第七讲:Obj-C 协议 Protocol - tigercat1977 - tiger notes

    协议使用例子

    第七讲:Obj-C 协议 Protocol - tigercat1977 - tiger notes

    判断某个对象是否响应方法
          既然接口可以部分实现,OC 对象提供了动态判断某个方法是否实现的方法
          respondsToSelector
          if ([test respondsToSelector:@selector(showInfo)])
          {
                [test  showInfo];
          }

    respondsToSelector

    第七讲:Obj-C 协议 Protocol - tigercat1977 - tiger notes


  • 相关阅读:
    『笔记』数学数论(八)
    『笔记』BSGS
    『笔记』组合数学(六)
    01 分数规划
    高斯消元
    拉格朗日插值法
    洛谷网课数论
    [IOI2013]robots 机器人
    P3530 [POI2012]FES-Festival
    NOIP 2015 day1
  • 原文地址:https://www.cnblogs.com/jackljf/p/3589249.html
Copyright © 2011-2022 走看看