我有这段代码:
- (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 ...
答案 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
。