转换为不相关的类型总是失败
Posted
技术标签:
【中文标题】转换为不相关的类型总是失败【英文标题】: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 对象,如街道、房屋等) 有没有办法让编译器静音?
【问题讨论】:
【参考方案1】:将您的函数转换为通用函数:
func checkResult<T: Address>(result: Result<T, NSError>)
// check
【讨论】:
以上是关于转换为不相关的类型总是失败的主要内容,如果未能解决你的问题,请参考以下文章
从“错误”转换为不相关类型“AuthErrorCode”总是失败
从 'Result<AnyObject>' 转换为不相关类型 'NSArray' 总是失败
从“NSPersistentStoreResult”转换为不相关类型“[entity]”总是失败
从 '(NSNumber) -> NSNumber' 转换为不相关类型 '(Any) -> Any' 总是失败