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

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

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

      iOS 認識runtime 中的三個指針 isa , IMP , SEL

      runtime中函數(shù)調(diào)用經(jīng)常被提及的三個概念 isa,IMP,SEL 

      一  isa:是類指針,之所以說isa是指針是因為Class其實是一個指向objc_class結(jié)構(gòu)體的指針,而isa 是它唯一的私有成員變量,即所有對象都有isa指針(isa位置在成員變量第一個位置)

      //打開 runtime.h文件可看到下面的類的結(jié)構(gòu)體詳情內(nèi)容
      struct objc_class { Class _Nonnull isa OBJC_ISA_AVAILABILITY;//這個就是上面說的 每個對象都有isa指針 在結(jié)構(gòu)體指針中第一個成員變量的位置上 #
      if !__OBJC2__ Class _Nullable super_class /*父類*/ const char * _Nonnull name /*類名*/ long version /*版本信息*/ long info /*類信息*/ long instance_size /*實例大小*/ struct objc_ivar_list * _Nullable ivars /*實例參數(shù)鏈表*/ struct objc_method_list * _Nullable * _Nullable methodLists /*方法鏈表*/ struct objc_cache * _Nonnull cache          /*方法緩存*/ struct objc_protocol_list * _Nullable protocols  /*協(xié)議鏈表*/ #endif } OBJC2_UNAVAILABLE;

       

      IMP:(Implementation縮寫

      (1)它是指向一個方法具體實現(xiàn)的指針,每一個方法都有一個對應(yīng)的IMP,所以,我們可以直接調(diào)用方法的IMP指針,來避免方法調(diào)用死循環(huán)的問題。

      (2)當你發(fā)起一個 ObjC 消息之后,最終它會執(zhí)行的那段代碼,就是由IMP這個函數(shù)指針指向了這個方法實現(xiàn)的。

       

         //Method 是一個類實例,里面的結(jié)構(gòu)體有一個方法選標 SEL – 表示該方法的名稱,一個types – 表示該方法參數(shù)的類型,一個 IMP  - 指向該方法的具體實現(xiàn)的函數(shù)指針。

         /*

         typedef struct objc_method *Method;

          typedef struct objc_ method {

          SEL method_name;    //方法名

          char *method_types; //方法類型

          IMP method_imp;    //具體方法實施的指針

         };

         */

        Method method = class_getInstanceMethod([self class], NSSelectorFromString(@"dealloc")); //獲取了這個實例方法類Mehtod

      IMP classResumeIMP = method_getImplementation(method); //通過實例方法類獲取對應(yīng)的地址IMP

       

       

      SEL:方法名稱的描述,只記錄方法的編號不記錄具體的方法,具體的方法是 IMP

      eg:SEL methodId = @selector(function);
      或者
         SEL methodId = NSSelectorFromString(@"function")

       

       

       

      參考:

      1  http://www.cocoachina.com/ios/20150717/12623.html

      2 http://blog.csdn.net/dongdongdongjl/article/details/7793156

       

      posted on 2018-03-13 18:32  ACM_Someone like you  閱讀(2835)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 在线国产精品中文字幕| 亚洲产在线精品亚洲第一站一 | 屯门区| 国产亚洲真人做受在线观看| 国产视频精品一区 日本| 欧美人与zoxxxx另类| аⅴ天堂中文在线网| 国产一区二区三区精品自拍| 永久免费AV无码网站YY| 天堂mv在线mv免费mv香蕉| 色99久久久久高潮综合影院| 精品乱人伦一区二区三区| 午夜DY888国产精品影院| 亚洲av午夜福利大精品| 熟女一区| 99精品热在线在线观看视| 南溪县| 亚洲男人第一无码av网站| 在线观看AV永久免费| 一区二区中文字幕久久| 成人福利一区二区视频在线| 亚洲综合色一区二区三区| 日韩亚洲视频一区二区三区| 日韩精品久久久肉伦网站| 亚洲日韩一区二区| 久久热这里只有精品99| 国产成人精品一区二区无| 国产片AV国语在线观看手机版| 亚洲精品乱码久久久久久蜜桃 | 亚洲成色精品一二三区| 久久中文骚妇内射| 国产一区二区不卡在线视频| 国内精品无码一区二区三区| 国产 浪潮av性色四虎| 亚洲理论电影在线观看| 日本边添边摸边做边爱喷水| 国产精品va无码一区二区| 精品国产乱一区二区三区| 老妇xxxxx性开放| 极品尤物被啪到呻吟喷水| 少妇人妻精品无码专区视频|