我一直在尝试将Alamofire从2.0升级到3.0。其中一种方法包含此签名:
func standardResponse(request: NSURLRequest?, response: NSHTTPURLResponse?, result: Result<AnyObject>, success: (object: AnyObject?) -> Void, failure: (error: ServerError) -> Void)
指向Result<AnyObject>
时出现错误,说明generic type 'Result' specialized with too few type parameters (got 1, but expected 2)
好吧,所以我输入2.根据Alamofire 3.0 migration guide,结果已更改为容纳额外的Error: ErrorType
参数。我接下来尝试了这个:
Result<AnyObject, Error>
这次错误是Error does not conform to protocol ErrorType
。
也许这个?
Result<AnyObject, Error: ErrorType>
没有雪茄。请帮我理解。
答案 0 :(得分:2)
looks like第二个参数必须是符合ErrorType
的对象。
所以你可以用例如这样的枚举创建你自己的错误类型:
enum MyErrorType: ErrorType {
case SomeError
case SomeOtherError
}
然后按照编译器要求的方式使用它:
Result<AnyObject, MyErrorType>