你不知道的NSError

錯誤則是用戶級別的問題,比如嘗試加載一個不存在的文件.因為錯誤是正常程序執行時預期的,所以在這類錯誤發生時,你應該手動核查這類情況并告知用戶.大部分情況下,錯誤不會引起程序崩潰.

錯誤代表著可預料的問題,并且有很多類型的操作可以在不引起程序崩潰的的情況下失敗,它們比異常更常見.與異常不同,這種錯誤核查是高質量代碼的常規項.

NSError類封裝了失敗操作的詳細內容.

屬性描述

domainNSString類型,包含了錯誤的domain.被用來將錯誤組織成層級結構并且保證錯誤碼不會沖突

codeNSInteger類型,標識了error的ID.在相同domain中的每個error都有一個唯一的值

userInfoNSDictionary類型,其中的key-value對包含了錯誤的額外信息, (鍵值對內容)取決與錯誤類型

NSError對象的userInfo字典比NSException的字典版本提供了更多內容.一些預定義的鍵被定義為常量,如下表:

鍵值

NSLocalizedDescriptionKeyNSString類型,代表著錯誤的全部描述.通常也包含了失敗原因

NSLocalizedFailureReasonErrorKeyNSString類型,簡潔的錯誤原因描述

NSUnderlyingErrorKey對代表著下一高層次的domain中的錯誤的另一個NSError引用

根據錯誤(情況), 這個字典也包含其他特殊的domain信息.比如, 文件加載錯誤對應的key是NSFilePathErrorKey,它(對應的value)包含了所請求文件的路徑.

注意,localizedDescription和localizedFailureReason方法是分別訪問頭兩個key的可選方式.

使用如下:


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容