Web サービスを介して別のサーバーから大量のデータをロードする iPhone アプリケーションを開発しています。
ネットワーク対応アプリケーションの場合、ネットワークタイムアウトを設定する必要があり、その後、「ネットワークが利用できません」と同じことをユーザーに警告するアップルガイドのどこかを読みたいです。
どうすればそうできますか?
request-timeout = 20 の設定で Web サービスを呼び出すサンプル コードを次に示します。20 時間以内に応答しない場合、接続を停止し、nil データを取得します。
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
}