У меня есть запрос на подключение, работающий с использованием stringWithContentsOfURL: encoding: error: метод из NSString. Я хочу иметь возможность повторить попытку подключения, если оно не удается в первый раз. Я собирался переписать функцию, чтобы использовать функцию тайм-аута NSURLRequest, но я думаю, что я действительно хотел бы использовать несколько повторных попыток до сбоя.
Помимо выполнения чего-то грубого, такого как цикл счетчика, есть ли в Objective-C приемлемый способ повторить запрос URL для данных?
EDIT:
Хорошо, я реализовал 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]);
}
}
}
Примечание: я еще не реализовал стратегию изящного сбоя, сейчас я просто регистрирую ошибку.
Используя этот код (или любые предлагаемые улучшения), как лучше всего реализовать здесь стратегию повторных попыток?