3

我正在使用一个给我的 API CFStreamError(据说它已被弃用,但苹果自己显然不在乎。)

我知道一些值,我当然可以编写多个嵌套的 switch 语句来将我知道的所有值转换为字符串,但是会有一些我不知道的值。

没有一些方便的方法来获取错误消息吗?我不在乎它是否已本地化,因为无论如何它只会出现在我们的日志中。

4

2 回答 2

0

处理错误的“旧的”、pre- NSError方法通常涉及返回代码,这些代码应该由应用程序(即开发人员)内部使用,而不是呈现给用户。

对于较新的 API,NSError返回的实际上包含要呈现给用户的信息(如果合适)。

至于CFStreamError-
CocoaDev 上有一个关于使CFStreamError人类可读的条目:

http://cocoadev.com/CFStreamErrorCodes

基本上它涉及从CFStream Error Domain Constants手动检查各种错误域。

可以在 Macnetworkprog 邮件列表上的这篇文章中找到来自开发人员技术支持的更多信息。

于 2014-03-12T09:32:02.700 回答
0

这适用于 POSIX 域错误:

            if (err.domain == kCFStreamErrorDomainPOSIX) {
                DLog("POSIX err: %s", strerror(err.error));
            } else {
                DLog("domain: %d, value: %d", err.domain, err.error);
            }

例如:

2020-01-31 09:58:02.996603-0800 废话 CFWriteStreamCB(CFWriteStreamRef _Null_unspecified, CFStreamEventType, void * _Null_unspecified):26 POSIX err: Operation timed out

于 2020-01-31T17:59:47.293 回答