ios之SEL

SEL實際上是對方法的一種包裝,將方法包裝成一個SEL類型的數據,去找對應的方法地址。找到方法地址就能夠調用方法, 其實消息就是SEL。對於下列方法調用:spa

[p test2];指針

主要有如下步驟:orm

1.把test2包裝成SEL類型的數據對象

2.根據SEL數據找到對應的方法地址內存

3.根據方法地址調用對應的方法form

好比一個類中有兩個方法:+test和-test2每一個方法在內存中的地址都有一個對應的SEL與之對應test

SEL s1 == +test地址select

SEL s2 == -test2地址方法

對象找要調用的方法時,isa指針會根據調用的方法名在類中找到相關的SEL對象(方法地址)去調用。因此,調用方法還能夠用以下形式:數據

[pperformSelector:@selector(test2)];

performSelector:@selector(test2)返回的就是test2的方法地址。

若是方法還有參數,好比- (void)test3:(NSString *)abc,還能夠按照以下格式調用:

[pperformSelector:@selector(test3:) [Object:@」abc」]];

對於上述調用方法,test3後必定要加」:「,由於」:」也是有參數方法的方法名的一部分。

相關文章
相關標籤/搜索