【发布时间】:2017-07-10 11:58:04
【问题描述】:
我正在寻找一种将 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? -
我想测试 meta 是否兼容/符合
MyProtocol
标签: objective-c swift bridging