ios - 如何在 Objective-C 中以编程方式检查协议(protocol)是否包含某些方法?

标签 ios objective-c delegates protocols

有没有办法检查一个协议(protocol)是否包含某个方法或者一个方法是否属于 Objective-C 中的某个协议(protocol)?

我不认为 redirected question和我的一样。我想要的是: [MyProtocol containsSelector:@selector(MySelector)]; 或者 [MySelector isMethodOfProtocol:@protocol(MyProtocol)];

最佳答案

查看 Objective-C 运行时函数

Protocol *objc_getProtocol(const char *name)

struct objc_method_description *protocol_copyMethodDescriptionList(Protocol *p, BOOL isRequiredMethod, BOOL isInstanceMethod, unsigned int *outCount)

在撰写本文时,可以找到文档 here .

关于ios - 如何在 Objective-C 中以编程方式检查协议(protocol)是否包含某些方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37875535/

相关文章:

iOs识别字母、神经网络、ocr等

ios - 将参数添加到 Alamofire 中的请求时出错

objective-c - Core Data 中的 'primitive' 访问器是什么?

c# 是否可以创建这样的委托(delegate)?

c# - 为什么使用 Delegate.Combine 需要强制转换而使用 + 运算符不需要?

ios - ios 8.3 显示 alertview 时键盘会自动出现

ios - 如何以编程方式向 UINavigationBar 添加后退按钮?

ios - NSDate 下午 4 点以后

ios - 如何在 iOS Objective-C 中比较两个数字

c++ - QTableView,设置单元格的字体和背景颜色