如何在运行时检查对象是否具有某些特定的 PUBLIC 选择器



我需要找出某个特定的对象是否具有某些特定的选择器,以及是否可以调用它。我需要在运行时检查它。我知道respondsToSelector:但不幸的是,它还检查类的受保护接口。

我需要检查选择器是否存在以及它是否是公共的。有没有办法我能做到?

在Objective-C中,没有公共、私有或受保护方法的概念。只有 IDE 可以在开发时合并这些概念以提供一些 OOP,但在运行时一切都会进行,因此没有标准的方法可以做到这一点。

您可以做的是子类(或创建具有关联对象的类别)NSObject,使用公共方法选择器创建数组,其中每个下一个子类将其公共方法添加到此数组中,然后使用您自己的方法或旋转响应ToSelector方法来检查数组中的匹配。

最新更新