【iOS開發】SEL和Selector 原理小結
阿新 • • 發佈:2019-01-01
一 、Selector(選擇器)簡介
選擇器是用來選擇一個方法來為一個物件 執行的名稱,或是在編譯原始碼時替換該名稱的 唯一識別符號的名稱。一個選擇器本身不做任何事情。它簡單地識別了一種方法。唯一使選擇器的方法名稱不同於普通字串,編譯器確保選擇器是獨特的。使一個選擇器有用的是(在執行時)它就像一個 動態函式指標,對於一個給定的名稱,自動指向一個方法的實現,適用於任何一個它所使用的類。
假設你有一個run方法選擇器和類Dog、Student。選擇器可以使用每一個類的一個例項來呼叫它的執行方法,即使每個類的實現可能是不同的。
二、獲取一個Selector
編譯的選擇器的型別是SEL。有兩種常見的方法來獲得選擇器:
(1)編譯時,通過編譯器指令 @selector 來獲取.
SEL aSelector = @selector(methodName);
(2)執行時,通過字串來獲取一個方法名 NSSelectorFromString
SEL aSelector = NSSelectorFromString(@”methodName”);
三、使用Selector
使用已經建立好的Selector。你可以通過 performSelector : 來呼叫某個方法。
// 建立一個run方法選擇器
SEL aSelector = @selector(run);// 通過 performSelector: 來呼叫物件的 run 方法
[aDog performSelector:aSelector];
[anStudent performSelector:aSelector];