目标c - 获取协议的父母列表

时间:2011-11-16 16:28:25

标签: objective-c ios protocols objective-c-runtime

Objective C runtime reference具有函数class_getSuperclass,用于获取类的超类。是否列出了协议的直接祖先?

1 个答案:

答案 0 :(得分:5)

没有祖先这样的东西,因为协议扩展而不是继承,因此你应该寻找兄弟姐妹。我能给你的最接近的是:

  1. 使用objc_protocol_list
  2. 获取协议列表
  3. 检查协议是否符合protocol_conformsToProtocol
  4. 的协议

    更新似乎我没有足够rtfm。这是正确的方法:

    protocol_copyProtocolList,描述为

      

    返回协议采用的协议数组。