我试图将错误代码添加到我的项目中,如下所示:
typedef enum {
FSChatErrorChatManagerInUse = 101,
FSChatErrorFailedToRetrieveHeader = 202,
FSChatErrorFailedToGetCount = 303,
} FSChatErrorCode;
然后,发送:
NSError * err = [NSError errorWithDomain:@"Failed To Get Count"
code:FSChatErrorFailedToGetCount
userInfo:nil];
因此,当收到错误通知时,您可以看到它是什么类型:
if (err.code == FSChatErrorFailedToGetCount) {
// do stuff
}
我应该遵循某种标准错误代码语法或编号吗?我很难找到参考资料。
答案 0 :(得分:2)
这个page对这个主题进行了很好的讨论:
与退出状态代码一样,NSError -code表示其性质 问题。这些状态代码在特定错误中定义 域,以避免重叠和混淆。这些状态代码 通常由枚举中的常量定义。
例如,在NSCocoaErrorDomain中,是错误的状态代码 由NSFileManager尝试访问不存在的文件引起的是4, 由NSFileNoSuchFileError定义。但是,NSPOSIXErrorDomain中有4个 是指POSIX EINTR或“中断函数”错误。
因此,由于您使用自己的错误域,因此可以创建所需的任何错误代码。顺便说一句,在您的示例中,您似乎滥用了域值:它并不意味着包含错误消息。请使用userInfo[NSLocalizedDescriptionKey]
。