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

时间:2009-11-22 15:29:09

标签: objective-c cocoa cocoa-touch nserror

NSError需要一个域,据我所知,它会对错误代码的范围进行细分。

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

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

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

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

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

1 个答案:

答案 0 :(得分:13)

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

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