NSError域/自定义域 - 约定和最佳实践

gro*_*hog 13 cocoa cocoa-touch objective-c nserror

NSError需要一个域,我理解它可以分割错误代码的范围.

人们会预料到某个地方存在domain.error代码的注册表,但我无法发现它.

据说这可以用于查找错误的本地化描述.

有没有人有任何已知的最佳实践来处理错误域和代码?权威参考(主要开发人员或框架制造商)是最佳的,但即使是详细描述良好惯例的博客也是有用的.

在您的项目中,您是否维护错误域/代码的注册表,这些注册表映射到基于域/代码的错误对象的本地化描述,恢复,众所周知的userinfo密钥或类似工厂?

或者你通常只是拼凑一些域和一些代码,并依赖于众所周知的用户信息密钥,如NSLocalizedDescriptionKey等,在你的定制NSError域?

Pet*_*sey 13

Apple通常在名为FrameworkNameErrors.h的标头中发布其NS/CFError代码.例如,Foundation的错误代码位于Foundation/FoundationErrors.h中.此外,他们通常在框架的文档中发布域和代码.

任何具有自己的错误域和代码的框架的独立作者都应该这样做.