iOS的SEL类型
什么是SEL類型
-
SEL類型代表著方法的簽名,在類對象的方法列表中存儲著該簽名與方法代碼的對應關系
-
每個類的方法列表都存儲在類對象中
-
每個方法有一個與之對應的SEL類型的對象
-
根據一個SEL對象就可以找到方法的地址,進而調用方法
SEL類型的定義
typedef struct objc_selector *SEL [p test];- 首先把test這個方法名包裝成SEL類型的數據
- 根據SEL類型到該類的類對象上去找對應的方法的代碼,如果找到則執(zhí)行改代碼,如果沒有找到根據類對象上的父類對象指針,去父類的類對象中查找,如果找到了則執(zhí)行,如果沒有找到,一直往上找,直到基類(NSObject), 如果都沒有找到就報錯注意:在這個操作中有緩存,第一次找到的時候是一個一個的找,之后再用到的時候就直接使用
SEL類型的作用
- 配合對象、類來檢查對象、類中有沒有實現一個方法
注:
如果通過對象調用該方法則判斷對象方法的實現
如果通過類調用該方法則判斷有沒有類方法的實現
- 配合對象或者類來調用某一個SEL方法
- 配合對象將SEL類型作為方法的形參
總結
- 上一篇: python xls文件转为csv
- 下一篇: 富媒体广告投放的一些经验