转换为不相关的类型总是失败

时间:2015-12-05 13:23:13

标签: ios swift generics

我有一个枚举声明为Result<T, NSError>。就像在Alamofire中一样 有一个符合协议地址

的struct City
struct City: Address {
   let title:String?
}

在网络请求和映射之后,我得到了Result<City,NSError>

类型的结果

当我尝试将此结果传递给具有签名

的方法时,问题就出现了

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

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

但是City符合Address,我希望能够将泛型结构传递给方法(因为有许多Address对象,比如街道,房屋等) 有没有办法让编译器沉默?

1 个答案:

答案 0 :(得分:1)

将您的功能转换为通用功能:

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