【发布时间】:2020-05-07 11:24:23
【问题描述】:
我有一个用 Swift 编写的协议,它应该由多个控制器遵守,其中一些是用 Objective-C 编写的。并非所有人都需要此 Swift 协议中的所有方法,所以起初我决定提供一些具有默认实现的方法,以使它们成为“可选”,但在这种情况下,我的 Objective-C 控制器无法识别我的 Swift 协议。有没有人遇到同样的情况并找到了解决方案?我的一些代码示例:
@objc public protocol SwiftProtocol: AnyObject {
func requiredMethod()
func optionalMethod()
}
extension SwiftProtocol {
func optionalMethod() {}
}
@interface ObjClass ()<SwiftProtocol>
我遇到了错误:(59, 1) 找不到“SomeProtocol”的协议声明 在方法而不是扩展中使用 @objc public 给出了相同的结果。 TIA 为您提供帮助!
【问题讨论】:
标签: ios objective-c swift swift-protocols