Cocoa - 来自无处的NSError描述

时间:2011-08-02 23:01:39

标签: iphone cocoa nserror

我有这段代码:

- (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 ...

2 个答案:

答案 0 :(得分:8)

该错误消息表示服务器无法找到您的在线资源。

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

HTTP 404 - 维基百科

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

  • localizedDescription
      

    无法完成操作()

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

  • errWithDomain:@"Server connection error"

      

    服务器连接错误

  • code:statusCode

      

    错误404

答案 1 :(得分:1)

  

无法完成操作。

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