OC中的super與superclass


一般解釋如下

// class: 獲取方法調(diào)用者類

// superclass: 獲取方法調(diào)用者 父類

// super:super不是一個指針,super只是編譯指示器

// super: 僅僅是讓方法調(diào)用者去調(diào)用父類方法

這段解釋看起來很簡單,但是實際中很容易用錯,尤其容易混淆的是super的用法.

super實際上是讓某個類自己去調(diào)用父類的方法,而不是父類去調(diào)用某方法;

比如

在名為Person的類.m中


- (void)test{

NSLog(@"%@ %@ %@ %@",[self class], [self superclass], [super class], [super superclass]);

}

在外面調(diào)用

Person *person =[ [Person alloc] init];
[person test];

結(jié)果會是

Person NSObject Person NSObject

原理如下:

  • [self class]表示person對象調(diào)用class方法得到類名Person,

  • [self superclass]意味著person對象調(diào)用superclass方法,得到父類類名NSObject,

  • [super class]表示person對象去調(diào)用父類的class方法,因為是對象方法,person對象得到類名Person,

  • [super superclass]表示person對象去調(diào)用父類的superclass方法,得到person對象的父類類名NSObject,

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)至元數(shù)據(jù)結(jié)尾創(chuàng)建: 董瀟偉,最新修改于: 十二月 23, 2016 轉(zhuǎn)至元數(shù)據(jù)起始第一章:isa和Class一....
    40c0490e5268閱讀 2,083評論 0 9
  • 我們常常會聽說 Objective-C 是一門動態(tài)語言,那么這個「動態(tài)」表現(xiàn)在哪呢?我想最主要的表現(xiàn)就是 Obje...
    Ethan_Struggle閱讀 2,351評論 0 7
  • (一) 我一度在風里尋找那樣不羈的氣息 它在遠方 在深居的夢里 而我要怎樣去問候它 讓我做那個偏執(zhí)的追求者吧 渴望...
    無塵詩人閱讀 439評論 1 7
  • 小學時,體育檢測。同班姑娘讓我?guī)退弥l(fā)卡,她去做仰臥起坐。我把發(fā)卡緊緊地握在手里,一秒鐘都沒有放開。她考完了,一...
    萌萌在簡書閱讀 591評論 0 5
  • 很有意思,今天黃星晨給了我一罐她說很好吃的黃桃罐頭(我雖然并不喜歡吃),真的有些意外。出于一些原因,我很不想看到她...
    Little_L閱讀 327評論 0 0

友情鏈接更多精彩內(nèi)容