我需要找出某个特定对象是否有某个特定选择器以及我是否可以调用它。我需要在运行时检查它。我知道 respondsToSelector:
但不幸的是它还检查类的 protected 接口(interface)。
我需要检查选择器是否存在以及是否是公共(public)的。有什么办法可以做到吗?
最佳答案
在 Objective-C 中没有公共(public)、私有(private)或 protected 方法的概念。只有 IDE 可以在开发时合并这些概念以提供一些 OOP,但在运行时一切正常,因此没有标准的方法来做到这一点。
您可以做的是子类化(或创建一个包含关联对象的类别)NSObject,创建带有公共(public)方法选择器的数组,其中每个下一个子类都将其公共(public)方法添加到该数组中,然后使用您自己的方法或 swizzle respondsToSelector 方法来检查在你的数组中进行匹配。
关于ios - 如何在运行时检查对象是否具有某些特定的 PUBLIC 选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898350/