NSString の stringWithContentsOfURL:encoding:error: メソッドを使用して接続要求が機能しています。初めて接続に失敗した場合、接続を再試行できるようにしたい。NSURLRequest のタイムアウト機能を使用するように関数を書き直すつもりでしたが、失敗する前に複数の再試行を使用したいと思います。
カウンターループのような大雑把なことをする以外に、Objective-C でデータの URL 再試行を再試行する受け入れられた方法はありますか?
編集:わかりました、興味のあるデータを取得するために NSURLConnection を実装し、NSError を使用してエラーの基本的な処理を追加しました。これが私の最初の刺し傷です:
- (id)initWithURL:(NSURL*)aURL {
NSError *error = nil;
NSURLResponse *response = nil;
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:aURL cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:20];
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *xmlString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
if (response == nil) {
if (error) {
NSLog(@"Error has occurred: %@", [error localizedDescription]);
}
}
}
注: 適切に失敗するための戦略はまだ実装していません。とりあえずエラーを記録しているだけです。
このコード (または提案された改善点) を使用して、ここで再試行戦略を実装する最良の方法は何でしょうか?