instancesRespondToSelector與respondsToSelector的區(qū)別

instancesRespondToSelector:類實(shí)例化后的對(duì)象是否綁定某方法
respondsToSelector:類或?qū)ο笫欠窠壎撤椒?br> 區(qū)別:

  1. 前者只能用于類,后者可用于類或?qū)ο螅?/li>
  2. 前者只適用于判斷實(shí)例方法是否存在,后者適用于實(shí)例方法類方法;

實(shí)例:
<pre>
@interface Test1 : NSObject

  • (void)objectFun;
  • (void)classFun;</pre>

<pre>
BOOL flag;
flag = [Test1 instancesRespondToSelector:@selector(objectFun)]; //YES
flag = [Test1 instancesRespondToSelector:@selector(classFun)]; //NO
flag = [Test1 respondsToSelector:@selector(objectFun)]; //NO
flag = [Test1 respondsToSelector:@selector(classFun)]; //YES
Test1 *obj = [[Test1 alloc] init];
flag = [obj respondsToSelector:@selector(objectFun)]; //YES
flag = [obj respondsToSelector:@selector(classFun)]; //NO</pre>
總結(jié):

  1. instancesRespondToSelector只能寫(xiě)在類名后面,respondsToSelector可以寫(xiě)在類名和實(shí)例名后面。

  2. [類 instancesRespondToSelector]判斷的是該類的實(shí)例是否包含某方法,等效于:[該類的實(shí)例 respondsToSelector]。

  3. [類 respondsToSelector]用于判斷是否包含某個(gè)類方法。

尊重版權(quán),請(qǐng)閱讀原文

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

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

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