Использование AFJSONRequestOperation On For Loop на iPhone SDK
У меня есть этот код, который я хочу загрузить с помощью AFJSONRequestOperation
прежде чем продолжить цикл for, но как-то это не работает. Код ниже находится внутри моего цикла for. Как я могу предотвратить продолжение цикла, даже если запрос еще не завершен? Это поможет мне поместить все значения, полученные из запроса на успешное выполнение, в массив в том порядке, в котором я этого хотел.
Это код:
NSURL *url = [NSURL URLWithString:[nowShowingTitleListArray objectAtIndex:i]];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:url];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:theRequest
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
// Code when success
}
failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)
{
NSLog(@"Request Failed with Error: %@", [error localizedDescription]);
}];
[operation start];
В настоящее время я делаю это, чтобы убедиться, что они будут выбраны и добавлены в мой массив по порядку:
NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:[nowShowingTitleListArray objectAtIndex:i]]];
NSError *error;
NSDictionary *JSONDict = [NSJSONSerialization JSONObjectWithData:data
options:kNilOptions
error:&error];
if (!JSONDict)
{
NSLog(@"Request Failed with Error: %@", [error localizedDescription]);
}
else
{
// Rest of code
}
Это также поможет мне минимизировать некоторые проблемы сбоев, возникающие у меня с запросом, когда сетевое соединение внезапно прерывается.
1 ответ
Почему вы выбираете свои данные с одного и того же URL дважды? После использования AFJSONRequestOperation, а затем dataWithContentsOfURL: Вы делаете это в цикле for?
У вас уже есть объект JSON в блоке успеха
success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON)
{
// Code when success
// write success code here
}
Вы можете вызывать AFJSONRequestOperation в цикле для нескольких сетевых запросов.