使用Alamofire我們試圖確定是否錯誤是某種作爲一個「嵌套」 AFError
枚舉表示的錯誤(響應代碼499)的:斯威夫特枚舉評價
if response.result.isFailure {
if let aferror = error as? AFError {
//THIS LINE FAILS
if (aferror == AFError.responseValidationFailed(reason: AFError.ResponseValidationFailureReason.unacceptableStatusCode(code: 499))) {
....
}
}
}
但是,這導致編譯器錯誤:
Binary operator '==' cannot be applied to two 'AFError' operands
你怎麼能這樣做?
如果使枚舉類型符合「Equatable」,則可以應用'=='枚舉具有關聯值的情況。你只是不要免費獲得它。 –
好吧;我將補充一點。另請參閱我在這個問題上的bug報告:https://bugs.swift.org/browse/SR-2900 - 正如喬丹羅斯所說,Swift未能「綜合Equatable」,這是一個更多一般投訴。 – matt
對於Swift,+1會自動將枚舉與相關的Equatable類型相符/合成,以便自己進行Equatable!也許在Swift 4中... –