我想要的,對於任何給定Error
功能,會給我的這如何檢查是否錯誤是NSError
protocol CustomError { }
func customDescription(_ error: Error) -> String {
switch error {
case let customError as CustomError:
return "custom error"
case ???:
return "not subclass of NSError"
case let nsError as NSError:
return "subclass of NSError"
}
}
一些以上描述是不是真正的代碼,我不想一個String
描述,但是一個Dictionary
,但這在問題的上下文中並不重要。
問題是我不知道如何區分Error
這是NSError
的子類,並且這不是因爲任何快速錯誤可以橋接到NSError
。它可能在迅速嗎?
類似(type:of:error)是NSError.Type'可能有效。 –
這是一個類似的問題,因爲[檢查任何'值是否是對象](https://stackoverflow.com/questions/39184911/check-if-any-value-is-object)。 –
我不確定我明白了爲什麼你需要將'NSError'與'Error'情況區分開來(它們是專門設計爲可互操作的) - 你試圖獲得的這個'Dictionary'是什麼? (這對於問題的背景聽起來很重要)。這可能是一個更好的解決方案,而不是試圖用演員來區分這兩種情況。 – Hamish