isa的理解

在NSObject.h里面: isa就是指向誰(哪個類)

@interface NSObject <NSObject> {
    Class isa  OBJC_ISA_AVAILABILITY;
}

再點開 Class 的定義:

struct objc_class {
    Class isa  OBJC_ISA_AVAILABILITY;
#if !__OBJC2__
    Class super_class                                        OBJC2_UNAVAILABLE;
    const char *name                                         OBJC2_UNAVAILABLE;
    long version                                             OBJC2_UNAVAILABLE;
    long info                                                OBJC2_UNAVAILABLE;
    long instance_size                                       OBJC2_UNAVAILABLE;
    struct objc_ivar_list *ivars                             OBJC2_UNAVAILABLE;
    struct objc_method_list **methodLists                    OBJC2_UNAVAILABLE;
    struct objc_cache *cache                                 OBJC2_UNAVAILABLE;
    struct objc_protocol_list *protocols                     OBJC2_UNAVAILABLE;
#endif
}

1芭商,當我們調(diào)用[child class] 的時候屡拨,child就會通過isa指針去找到Child的class口蝠。
2乡洼,當我們調(diào)用[child superclass]的時候嫌术,child 通過isa找到Child的class献烦,再通過super_class彤敛,找到Parent的class与帆。
在這里,再普及objc_class 的兩種類型:
class:實例對象(child墨榄、Child)的isa指向的結(jié)構(gòu)體玄糟;

metaclass:class的isa指向的一個結(jié)構(gòu)體;
3袄秩,接著阵翎,調(diào)用[child SelectorC],child通過isa找到Child的class之剧,在class(注意看上面 struct objc_class 的定義)的方法列表里面找到SelectorC郭卫;
4,再試著調(diào)用[child SelectorP]背稼,child通過isa找到Child的class贰军,發(fā)現(xiàn)class里面并沒有這個方法,通過class里面的super_class找到Parent的class蟹肘,在里面的方法列表找到了SelectorP词疼;
5,再是類方法[Child ClassSelectorC]帘腹,Child(請注意贰盗,大寫)通過isa找到Child的class,通過class的isa找到Child的metaclass阳欲,在metaclass的方法列表里面找到了ClassSelectorC舵盈;
6,再試著調(diào)用[Child ClassSelectorP]胸完,Child通過isa找到Child的class书释,通過class的isa找到Child的metaclass,發(fā)現(xiàn)metaclass里面并沒有這個方法赊窥,通過metaclass里面的super_class找到Parent的metaclass爆惧,在里面的方法列表找到了ClassSelectorP;

<h1>按鈕觸發(fā)其他類里面的類方法

<h5>objc_getMetaClass//元類
objc_getClass//類
class_getSuperclass//父類,三個方法參數(shù)為''char''返回值Class,忘記的話查看class的文件.

unsigned int count;
    Method * methods = class_copyMethodList(objc_getMetaClass("mangeiChild"), &count);
    for (int i=0; i<count; i++) {
        Method method = methods[i];
        selector = method_getName(method); 
    }
    [self.btn addTarget:[mangeiChild class] action:selector forControlEvents:UIControlEventTouchUpInside];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末锨能,一起剝皮案震驚了整個濱河市扯再,隨后出現(xiàn)的幾起案子芍耘,更是在濱河造成了極大的恐慌,老刑警劉巖熄阻,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件斋竞,死亡現(xiàn)場離奇詭異,居然都是意外死亡秃殉,警方通過查閱死者的電腦和手機坝初,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來钾军,“玉大人鳄袍,你說我怎么就攤上這事±艄В” “怎么了拗小?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長樱哼。 經(jīng)常有香客問我哀九,道長,這世上最難降的妖魔是什么搅幅? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任阅束,我火速辦了婚禮,結(jié)果婚禮上盏筐,老公的妹妹穿的比我還像新娘围俘。我一直安慰自己,他們只是感情好琢融,可當我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布界牡。 她就那樣靜靜地躺著,像睡著了一般漾抬。 火紅的嫁衣襯著肌膚如雪宿亡。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天纳令,我揣著相機與錄音挽荠,去河邊找鬼。 笑死平绩,一個胖子當著我的面吹牛圈匆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捏雌,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼跃赚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纬傲,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤满败,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后叹括,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體算墨,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年汁雷,在試婚紗的時候發(fā)現(xiàn)自己被綠了净嘀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡摔竿,死狀恐怖面粮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤稍走,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布粱胜,位于F島的核電站,受9級特大地震影響涯曲,放射性物質(zhì)發(fā)生泄漏幻件。R本人自食惡果不足惜绰沥,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望麸塞。 院中可真熱鬧喘垂,春花似錦、人聲如沸傻铣。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朴皆。三九已至遂铡,卻和暖如春扒接,著一層夾襖步出監(jiān)牢的瞬間钾怔,已是汗流浹背蒂教。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留炭分,地道東北人捧毛。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像胰坟,于是被迫代替她去往敵國和親笔横。 傳聞我的和親對象是個殘疾皇子吹缔,可洞房花燭夜當晚...
    茶點故事閱讀 44,619評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉俗冻,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 1,709評論 0 9
  • 首先說明,這篇文章幾乎都是抄錄的別人的博客画机,簡書文章,在此總結(jié)荚醒,只是為了方便記憶和以后閱讀,如果有什么失禮的地方隆嗅,...
    LiYaoPeng閱讀 4,945評論 1 14
  • 轉(zhuǎn)載:http://yulingtianxia.com/blog/2014/11/05/objective-c-r...
    F麥子閱讀 732評論 0 2
  • Objective-C語言是一門動態(tài)語言界阁,它將很多靜態(tài)語言在編譯和鏈接時期做的事放到了運行時來處理。這種動態(tài)語言的...
    有一種再見叫青春閱讀 583評論 0 3
  • 文中的實驗代碼我放在了這個項目中胖喳。 以下內(nèi)容是我通過整理[這篇博客] (http://yulingtianxia....
    茗涙閱讀 923評論 0 6