前言
在阅读某第三方库的代码时使用到了NSObject中的respondsToSelector方法,感到非常的迷惑,这篇文章简单的整理了它的使用方法,并罗列了NSObject中的其它一些比较常用的方法
正文
下面两个方法加上注释以后很容易理解
-(BOOL) isKindOfClass: classObj //用来判断是否是某个类或其子类的实例
-(BOOL) isMemberOfClass: classObj //用来判断是否是某个类的实例
那么下面两个方法就不太好理解了
-(BOOL) respondsToSelector: selector
+(BOOL) instancesRespondToSelector: selector
下面三段话来自instancesRespondToSelector与respondsToSelector的区别
instancesRespondToSelector只能写在类名后面,respondsToSelector可以写在类名和实例名后面。
[类 instancesRespondToSelector]判断的是该类的实例是否包含某方法,等效于:[该类的实例 respondsToSelector]。
[类 respondsToSelector]用于判断是否包含某个类方法。
ignore :instancesRespondToSelector 被类调用表示:在这个类的实例中是否包含指定的@selector方法
respondsToSelector可以被类调用表示:这个类中是否存在指定的@selector这个类方法(⚠️:类方法)
也可以被实例调用表示:这个类的实例中是否包含指定的@selector方法
参考资料
respondsToSelector的相关使用
instancesRespondToSelector与respondsToSelector的区别