我有一个协议,Address它继承自另一个协议Validator,并Address满足Validator扩展中的要求.
还有另一个协议,FromRepresentable它有一个associatedType(ValueWrapper)要求Validator.
现在,如果我尝试使用Addressas associatedType,那么它不会编译.它说,
推断类型'Address'(通过匹配要求'valueForDetail')无效:不符合'Validator'.
这种用法是非法的吗?我们是不是应该能够使用Address的地方Validator,因为所有Addresses都是Validator.
下面是我正在尝试的一段代码.
enum ValidationResult {
case Success
case Failure(String)
}
protocol Validator {
func validate() -> ValidationResult
}
//Address inherits Validator
protocol Address: Validator {
var addressLine1: String {get set}
var city: String {get set}
var country: String {get set}
}
////Fulfill Validator protocol requirements in extension
extension …Run Code Online (Sandbox Code Playgroud)