你不知道的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的可选方式.

使用如下:


你可能感兴趣的:(你不知道的NSError)