天天看點

Cocoa觸發方法調用的幾種方法

SEL就是selector的縮寫,它表示Cocoa中的方法選擇器,不明白?那請仔細了解Objective_C的運作時機制與Cocoa底層思想。

看了上面代碼這下你明白了什麼是SEL了吧,平時我們開發當中經常用到的。

有了SEL這樣就可以觸發方法調用了,

上面兩句代碼是同一個道理。

IMP其實就是一個函數指針的概念,就可以這麼簡單了解。

上面這句代碼就是擷取methodWithInt:andInt:這個方法的位址。

有了這個函數指針後,我們就可以觸發方法:

第一個是對象,第二個SEL, 後面的傳入的參數。

新浪微網誌

這是Objc運作時的一個C方法,我們先看一個示列:

NSInvocation相比上面幾種方法,可以動态決定傳入的參數個數。有了它,我們就可以實作…這樣的變參API封裝。

說得有點抽像,看代碼更清楚:

假如我們實作了一個兩個數相加的方法,

我們可以用下面的方法來觸發這個方法,并擷取傳回值。

代碼很容易了解,我也不多做解釋,有不明白的請留言。

下面是變參封裝, 寫了兩個NSObject的Extension(Category):

調用方法:

繼續閱讀