KSError提供两大功能领域
-[NSError ks_isErrorOfDomain:code:]
轻松查询错误是否与指定域名和代码匹配,或者封装一个内部错误。这对于检查底层错误而不必亲自挖掘堆栈很有用。也略比手动检查域名和代码冗余。
当创建自己的API时,构建自定义错误对象传递给调用者通常非常有帮助。但是,直接使用NSError
来做这件事非常繁琐。
KSError
是NSError
的子类,提供了一堆方便的方法来创建特定类型的错误。
KSMutableError
几乎就是它名字的含义(美国人所说的“可以”怪人)。错误可以分步骤使用友好的API构建
- (void)setObject:(id)object forUserInfoKey:(NSString *)key;
- (void)setLocalizedDescriptionWithFormat:(NSString *)format, ...;
- (void)addLocalizedRecoveryOption:(NSString *)option attempterBlock:(BOOL(^)())attempter;
我是Mike Abdullah,来自Karelia Software。@mikeabdullah在Twitter上。
有关代码的任何问题,请以问题形式提交到https://github.com/karelia/KSError,或者通过Twitter向我发送消息。
除了Foundation以外没有其他依赖。如果您愿意,可能从OS X v10.3开始就适用(针对非基于块的API)。
版权所有 © 2011 Karelia Software
本通知对此软件及其相关文档文件(“软件”)的副本(以下简称“软件”)的任何个人免费许可,允许其在没有任何限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可或出售软件的副本,并允许获得软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
软件按“原样”提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、特定目的的适用性和非侵权性。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论是因为合同、侵权或有其他方式,无论是否与软件或使用或操作软件有关。
userInfo
键的便利方法NSError
子类