Swift 协议一致性问题
Swift protocol conformance issue
我有 2 个协议和一个符合它的 class。
protocol SomeProtocol: AnyObject { }
protocol AnotherProtocol: AnyObject { }
protocol HelperProtocol {
var delegate: AnotherProtocol? { get }
}
class SomeClass {
weak var delegate: (SomeProtocol & AnotherProtocol)?
}
extension SomeClass: HelperProtocol { // Type 'SomeClass' does not conform to protocol 'HelperProtocol'
}
如何修复编译错误?
Swift 不能 没有根本原因支持它,但它只是不支持(截至目前)。 解释得很好。
我认为最好的解决方案是制作两个属性,虽然不幸的是丑陋。
class SomeClass: HelperProtocol {
weak var strictlyTypedDelegate: (SomeProtocol & AnotherProtocol)?
var delegate: AnotherProtocol? { strictlyTypedDelegate }
}
我有 2 个协议和一个符合它的 class。
protocol SomeProtocol: AnyObject { }
protocol AnotherProtocol: AnyObject { }
protocol HelperProtocol {
var delegate: AnotherProtocol? { get }
}
class SomeClass {
weak var delegate: (SomeProtocol & AnotherProtocol)?
}
extension SomeClass: HelperProtocol { // Type 'SomeClass' does not conform to protocol 'HelperProtocol'
}
如何修复编译错误?
Swift 不能 没有根本原因支持它,但它只是不支持(截至目前)。
我认为最好的解决方案是制作两个属性,虽然不幸的是丑陋。
class SomeClass: HelperProtocol {
weak var strictlyTypedDelegate: (SomeProtocol & AnotherProtocol)?
var delegate: AnotherProtocol? { strictlyTypedDelegate }
}