我希望找到一种方法,动态匹配Objective-C Protocol
实例与相应的Swift协议。
我在Swift中定义了一个与Objective-C兼容的协议:
@objc(YHMyProtocol) protocol MyProtocol { }
我尝试在一个函数中执行匹配:
public func existMatch(_ meta: Protocol) -> Bool {
// Not working
if meta is MyProtocol {
return true
}
// Not working also
if meta is MyProtocol.Protocol {
return true
}
return false
}
这个函数旨在从Objective-C文件中调用:
if([Matcher existMatch:@protocol(YHMyProtocol)]) {
/* Do Something */
}
existMatch
函数总是返回false。
我无法想象如何解决这个问题。我的实现中是否漏掉了什么重要的东西?
meta
是否严格等同于MyProtocol
,或者等同于或派生自MyProtocol
吗? - Hamish