<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      RunTime(消息機(jī)制) + RunTime(消息轉(zhuǎn)發(fā))

                                                                       一.消息機(jī)制
      1.在viewDidLoad中直接用 performSelector:@selector(doSomething) 來調(diào)用doSomething方法時(shí),會(huì)發(fā)現(xiàn)找不到這個(gè)方法而奔潰.此時(shí),我們可以在resolveInsantanceMethod:(SEL)see 方法中獲取這個(gè)所有在運(yùn)行時(shí)階段的方法,在這個(gè)方法中只需要判斷一下,將這個(gè)方法獲取,并且運(yùn)用Runtime 的 class_addMethod 的方法來將方法和響應(yīng)函數(shù)綁定,進(jìn)而達(dá)到為某一個(gè)類添加方法的目的.
      - (void)viewDidLoad {
          [superviewDidLoad];
          [selfperformSelector:@selector(doSomething)];
      }
      //1.對象在收到無法解讀的消息后,會(huì)調(diào)用resolveInstanceMethod
      //2.再用class_addMethod 將調(diào)用的方法名字和制定函數(shù)相關(guān)聯(lián)
      + (BOOL)resolveInstanceMethod:(SEL)sel {
          if (sel == @selector(doSomething)) {
              NSLog(@"add method here");
              class_addMethod([selfclass], sel, (IMP)dynamicMethodIMP, "v@:");
              returnYES;
          }
          return [superresolveInstanceMethod:sel];
      }
      //函數(shù)
      void dynamicMethodIMP (idself,SEL_cmd) {
          NSLog(@"doSomething SEL");
      }
      + (BOOL)resolveClassMethod:(SEL)sel {
          NSLog(@">> Class resolving %@",NSStringFromSelector(sel));
          return [superresolveClassMethod:sel];
      }
                                    二.消息轉(zhuǎn)發(fā)
      #import "ViewController.h"

      @interfaceViewController ()

      @end

      @implementation ViewController

      - (void)viewDidLoad {
          [superviewDidLoad];
          [selfperformSelector:@selector(messageViewMethod)];
      }

      /**
       *  @author zhouyantong
       *
       *  @brief 在這個(gè)方法中并沒有找到或者實(shí)現(xiàn)相應(yīng)的方法,那么消息會(huì)往下傳遞,在轉(zhuǎn)發(fā)方法中看別的界面是否有這個(gè)方法
       *
       */
      + (BOOL)resolveInstanceMethod:(SEL)sel {
          return [superresolveInstanceMethod:sel];
      }

      - (id)forwardingTargetForSelector:(SEL)aSelector {
          Class class = NSClassFromString(@"MessageViewController");
          UIViewController *vc = class.new;
          if (aSelector == NSSelectorFromString(@"messageViewMethod")) {
              NSLog(@"MessageVC do this!");
              return vc;
          }
          returnnil;
      }

      - (void)didReceiveMemoryWarning {
          [superdidReceiveMemoryWarning];
          // Dispose of any resources that can be recreated.
      }
       
       
       
      #import "MessageViewController.h"

      @interfaceMessageViewController ()

      @end

      @implementation MessageViewController

      - (void)viewDidLoad {
         
      }

      - (void)messageViewMethod {
          NSLog(@"This is receive method!");
      }
      @end
       
      posted @ 2016-03-07 15:29  那個(gè)顧客  閱讀(184)  評論(0)    收藏  舉報(bào)
      主站蜘蛛池模板: 成人特黄特色毛片免费看| 孕妇特级毛片ww无码内射| 亚洲а∨天堂久久精品2021| 久久精品国产99国产精品亚洲| 国内自拍第一区二区三区| 久久狠狠一本精品综合网| 狼人大伊人久久一区二区| 91孕妇精品一区二区三区| 国产精品无码不卡在线播放| 国产精品高清视亚洲中文| 亚洲精品乱码久久久久红杏| 日韩中文字幕亚洲精品| 亚洲精品一区二区制服| 裕民县| 国产女人喷潮视频在线观看| A级孕妇高清免费毛片| 亚洲色成人一区二区三区| 亚洲午夜爱爱香蕉片| 亚洲国产精品久久久天堂麻豆宅男| 久久亚洲精品国产精品尤物| 又黄又刺激又黄又舒服| 久久精品国产亚洲αv忘忧草| 日韩加勒比一本无码精品| 亚州少妇无套内射激情视频| 亚洲国产大片永久免费看| 日日碰狠狠躁久久躁96avv| 色悠悠国产在线视频一线| 国产稚嫩高中生呻吟激情在线视频| 日本欧美大码a在线观看| 亚洲国产午夜精品福利| 亚洲国产初高中生女av| 亚洲欧美综合中文| 少妇人妻偷人精品视频| 我要看亚洲黄色太黄一级黄| 久久99国产精品尤物| 欧美福利电影A在线播放 | 日韩视频一区二区三区视频| 成年女人片免费视频播放A| 国产精品一区在线蜜臀| 亚洲av乱码久久亚洲精品| 婷婷99视频精品全部在线观看|