5

我有这段代码:

- (void)connection:(NSURLConnection*)connection didReceiveResponse:(NSURLResponse*)response 
{
    if ([response respondsToSelector:@selector(statusCode)]) {

        int statusCode = [((NSHTTPURLResponse*)response) statusCode];
        if (statusCode >= 400) {
            NSError* statusError = [NSError errorWithDomain:@"Server connection error" code:statusCode userInfo:nil];
            [self connection:connection didFailWithError:statusError];
        }
    }
}

- (void)connection:(NSURLConnection*)connection didFailWithError:(NSError*)error 
{
NSLog(@"%@", [error localizedDescription]);
}

这给出了一个缺失的页面:

--> 操作无法完成。(服务器连接错误错误 404。)

描述(本地化与否)来自哪里?
我刚刚用一个代码和一个自定义的无意义的域字符串初始化了 NSError ......

4

2 回答 2

9

该错误消息意味着服务器无法找到您的在线资源。

例如:http://www.google.com/notthepageyourelookingfor

HTTP 404 - 维基百科

如果您询问错误消息的来源,它应该像这样分解:

  • localizedDescription

    操作无法完成 ()

默认情况下,此方法返回用户信息字典中键NSLocalizedDescriptionKey的对象。如果用户信息字典不包含NSLocalizedDescriptionKey的值,则从域和代码构造一个默认字符串。NSLocalizedDescriptionKey 是错误的本地化字符串表示形式,如果存在,将由本地化描述返回。适用于 Mac OS X v10.2 及更高版本。在 NSError.h 中声明。

  • errWithDomain:@"Server connection error"

    服务器连接错误

  • code:statusCode

    错误 404

于 2011-08-02T23:06:17.453 回答
1

操作无法完成。

这是一个标准的 POSIX 错误。您的域和错误代码只是附加到实际的错误消息中以确定错误的来源。通常,使用反向 DNS 样式的域,例如com.developer.package.

于 2011-08-02T23:11:25.037 回答