Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要找出某个特定对象是否有某些特定选择器,以及我是否可以调用它。我需要在运行时检查它。我知道respondsToSelector:但不幸的是它也检查类的受保护接口。
respondsToSelector:
我需要检查选择器是否存在以及它是否是公开的。有办法我可以做到吗?
在 Objective-C 中没有公共、私有或受保护方法的概念。只有 IDE 可以在开发时结合这些概念以提供一些 OOP,但在运行时一切正常,因此没有标准的方法可以做到这一点。
您可以做的是子类化(或使用关联对象创建一个类别)NSObject,使用公共方法选择器创建数组,其中每个下一个子类都将其公共方法添加到该数组中,并使用您自己的方法或调配 respondsToSelector 方法来检查匹配你的阵列。