如何检测NSURLConnection的sendSynchronousRequest:returningResponse:error:是否超时或其他错误

我使用NSURLConnection's sendSynchronousRequest:returningResponse:error:方法(在一个单独的NSOperation线程中)连接到外部服务器来检索数据。 我如何知道操作是否结束超时或其他networking错误?

如果发生错误,则当sendSynchronousRequest:returningResponse:error: returns时,error参数将不为零。

您可以通过检查[NSError code]返回的值来检索错误代码。 超时的错误代码是NSURLErrorTimedOut

例如:

 NSError *error = nil; [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error] if (error.code == NSURLErrorTimedOut) { // Handle time out here } 

您可能会向用户显示警报,并将sendSynchronousRequest:returningResponse:error:的错误参数sendSynchronousRequest:returningResponse:error:传递给警报消息。

代码将是这样的:

 [NSURLConnection sendSynchronousRequest: req returningResponse: &response error: &error]; if (error) { UIAlertView * alert = [[UIAlertView alloc]initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; [alert show]; } 

希望能帮助到你!!