Objective c——获取协议的父协议列表

发布于 2024-12-15 19:06:12 字数 217 浏览 3 评论 0原文

Objective C 运行时参考 有函数 class_getSuperclass 用于获取类的超类。有没有类似的东西可以列出协议的直接祖先?

The Objective C runtime reference has the function class_getSuperclass for getting the superclass of a class. Is there anything similar for listing the direct ancestors of a protocol?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一页 2024-12-22 19:06:12

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

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

update 的协议 看来我rtfm 还不够。这是正确的方法:

protocol_copyProtocolList,其描述为

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

There's no such thing as ancestors, since protocols expand rather than inherit, hence you should look for siblings. The closest thing that I can give you is:

  1. Get the list of protocols with objc_protocol_list
  2. Check if protocol conforms to protocol with protocol_conformsToProtocol

update it seems i didn't rtfm enough. Here's the proper method:

protocol_copyProtocolList, which is described as

Returns an array of the protocols adopted by a protocol.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文