2015-11-09 12 views
1

我一直在試圖使Alamofire從2.0升級到3.0。其中一個方法包含這個簽名:如何在方法簽名中表示結果<值,錯誤:Errortype>

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

可能只是'結果

所以,你可以舉例來說,像這樣的枚舉創建自己的錯誤類型>'。 – Moritz

+0

'不支持'使用'ErrorType'作爲符合協議'ErrorType'的具體類型@EricD。 –

+1

這個新的錯誤信息讓我想到了一個建議:創建一個新的錯誤類型並使用它。像'enum ET:ErrorType {case xxx case yyy}',然後'Result '。如果有效,我會把它作爲我的答案,但現在我不確定。 – Moritz

回答

2

looks like第二個參數必須是符合ErrorType的對象。

enum MyErrorType: ErrorType { 
    case SomeError 
    case SomeOtherError 
} 

然後用它的編譯器問路:

Result<AnyObject, MyErrorType> 
+1

正確的先生! – cnoon

相關問題