2011-08-02 71 views
4

未來我有這樣一段代碼:可可 - 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 ...

回答

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

+0

無法通過* server *找到。這不是應用程序的錯誤。注意。 – 2011-08-02 23:09:21

+0

我認爲OP知道HTTP錯誤代碼是什麼。 –

+0

@Oliver:我添加了一些關於本地化消息來源的更多信息。否則,我無法進一步分解它。你提供了大部分的錯誤信息,並告訴錯誤來填補其餘部分。 –

0

操作無法完成。

這是一個標準的POSIX錯誤。您的域名和錯誤代碼僅附加到實際的錯誤消息中以確定錯誤的來源。通常使用反向DNS樣式的域,如com.developer.package

+0

太好了。但問題來自錯誤信息從何而來。 – Oliver