使用respondsToSelector:来发现对象是否响应消息

Posted 小爷的爷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用respondsToSelector:来发现对象是否响应消息相关的知识,希望对你有一定的参考价值。

发现对象是否响应消息

要发现一个对象是否响应一则消息,请在该对象上调用 respondsToSelector: 方法。应用程序代码通常验证一个对象响应一则消息后,才将消息发送给该对象。

if ([item respondsToSelector:@selector(setState:)]){
    [item setState:[self.arcView.font isBold] ?NSOnState :NSOffState];
}

respondsToSelector: 方法将选择器视为其参数。选择器是一种 Objective-C 数据类型,用于方法的运行时标识符 (runtime identifiers);您使用 @selector 编译器指令指定选择器。在您的代码中,评估此方法返回的 Boolean 值,并继续相应的操作。

要识别对象响应的消息,调用 respondsToSelector: 通常比评估类的类型更有用。例如,一个类的较新版本可能实现以前版本没有的方法。

 

以上是关于使用respondsToSelector:来发现对象是否响应消息的主要内容,如果未能解决你的问题,请参考以下文章

ViewController respondsToSelector:]: 消息发送到释放的实例

无法在 Mac 上使用 ARC 使用 respondsToSelector

respondsToSelector的使用

respondsToSelector和 instancesRespondToSelector的理解

如何在 Swift 4 中使用 respondsToSelector 验证来自 HomeKit 的值的方法字节

respondsToSelector 在 UIButton 上为“setTitle:”返回 YES,但没有这样的选择器