gpt4 book ai didi

objective-c - 是否有任何内省(introspection)方法来获取 Objective-C 中的类的所有采用的协议(protocol)?

转载 作者:太空狗 更新时间:2023-10-30 03:31:15 27 4
gpt4 key购买 nike

有一个-[NSObject conformsToProtocol:] 方法来检查是否采用了特定的协议(protocol)。有没有什么方法可以获取一个类所有采用的协议(protocol),而不是检查一个列表?

最佳答案

有一个更优雅的解决方案:class_copyProtocolList() 直接返回一个类采用的协议(protocol)。用法:

Class cls = [self class]; // or [NSArray class], etc.
unsigned count;
Protocol **pl = class_copyProtocolList(cls, &count);

for (unsigned i = 0; i < count; i++) {
NSLog(@"Class %@ implements protocol <%s>", cls, protocol_getName(pl[i]));
}

free(pl);

关于objective-c - 是否有任何内省(introspection)方法来获取 Objective-C 中的类的所有采用的协议(protocol)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070992/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com