【问题标题】:Cast to unrelated type always fails转换为不相关的类型总是失败
【发布时间】:2015-12-05 13:23:13
【问题描述】:

我有一个枚举声明为 Result<T, NSError>.like 在 Alamofire 有一个struct City 符合协议Address

struct City: Address {
   let title:String?
}

在网络请求和映射之后,我得到了 Result<City,NSError> 类型的填充结果

当我尝试将此结果传递给带有签名的方法时,问题就出现了

func checkResult(resul:Result<Address, NSError>)

编译器警告我“无法将 Result<City,NSError> 类型的值转换为预期的参数类型 Result<Address,NSError>

但是 City 符合 Address 并且我希望能够将通用结构传递给方法(因为有很多 Address 对象,如街道、房屋等) 有没有办法让编译器静音?

【问题讨论】:

    标签: ios swift generics


    【解决方案1】:

    将您的函数转换为通用函数:

    func checkResult<T: Address>(result: Result<T, NSError>) {
        // check
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 2015-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多