Sha*_*lla 8 introspection objective-c objective-c-runtime objective-c-protocol
有一种-[NSObject conformsToProtocol:]方法可以检查是否采用了特定的协议.是否有任何方法可以获取类的所有采用的协议,而不是检查列表?
小智 12
有一个更优雅的解决方案:直接返回所采用的类协议.用法:class_copyProtocolList()
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1706 次 |
| 最近记录: |