установить тайм-аут сети и исключение в iPhone - PullRequest
0 голосов
/ 13 октября 2009

Я занимаюсь разработкой приложения для iPhone, в котором загружаю много данных с другого сервера через веб-службы.

Я хочу прочитать где-нибудь в руководствах Apple, что для приложений с поддержкой сети вы должны установить тайм-аут сети, и после этого вы должны предупредить пользователя о том, что "Сеть недоступна".

Как я могу это сделать?

1 Ответ

2 голосов
/ 13 октября 2009

Вот пример кода для вызова веб-службы с настройкой времени ожидания запроса = 20. Если он не ответит в течение времени 20, он прекратит соединение, и мы получим нулевые данные.

NSString* str = [NSString stringWithFormat:@"http://ws.geonames.org/findNearbyPostalCodes?lat=%f&lng=%f",curr_latitude,curr_longitude];
NSMutableURLRequest* request2=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:str]];
[request2 setHTTPMethod:@"POST"];   
[request2 setTimeoutInterval:20];
NSURLResponse *response=nil;
NSError *err=nil;
NSData *data1=[[NSURLConnection sendSynchronousRequest:request2 returningResponse:&response error:&err] retain];
if(data1 == nil)
{
    UIAlertView* alert = [[UIAlertView alloc]initWithTitle:@"Alert" message:@"The network is not available.\n Please check the Internet connection." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
    [alert release];

}
  else
  {
         // It will store all data to data1
         // Here you can proceed with data1
  }
...