Alamofire:错误:无法将“结果<_,_>”类型的值分配给“结果”类型
Posted
技术标签:
【中文标题】Alamofire:错误:无法将“结果<_,_>”类型的值分配给“结果”类型【英文标题】:Alamofire: ERROR: Cannot assign value of type 'Result<_,_>' to type 'Result' 【发布时间】:2016-05-12 18:46:07 【问题描述】:我使用Alamofire 发送请求和处理响应。我创建了一个使用Alamofire.Result
类型的简单类:
class MyHandler
private var _result: Alamofire.Result
init(result: Alamofire.Result)
//ERROR: Cannot assign value of type 'Result<_,_>' to type 'Result'
self._result = result
如上所示,我的代码中出现了一个奇怪的错误。这是 source code 的 Alamofire.Result
。这是一个枚举enum Result<Value, Error: ErrorType>
。
我在我的班级中使用相同的Alamofire.Result
类型作为self._result
和result
在初始值中传递。
为什么会出现此错误?看起来编译器认为它们不是同一类型……我的 xcode 版本是 7.3.1。这是 xcode 的错误吗?
【问题讨论】:
【参考方案1】:AlamoFire.Result
是具有两个占位符的泛型类型
public enum Result<Value, Error: ErrorType> ...
您可以为具体类型声明您的类 占位符,例如
class MyHandler
private var _result: AlamoFire.Result<Int, NSError>
init(result: AlamoFire.Result<Int, NSError>)
self._result = result
但您更有可能想要声明一个泛型类:
class MyHandler<Value, Error: ErrorType>
private var _result: AlamoFire.Result<Value, Error>
init(result: AlamoFire.Result<Value, Error>)
self._result = result
【讨论】:
以上是关于Alamofire:错误:无法将“结果<_,_>”类型的值分配给“结果”类型的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3.0 迁移后的 Alamofire 错误:“无法将 '(URL, HTTPURLResponse)-> (URL)' 类型的值转换为预期的参数类型 'Parameters'”?
迁移 Swift 和更新 Alamofire 后,我的路由器无法工作