Я пытаюсь использовать AFJSONRequestOperation
, чтобы вытащить один мир данных из канала JSON.AFJSONRequestOperation не обновляет содержимое за пределами блока
Следующий код тянет URL-адрес просто отлично, и когда stringURL печатается, он печатает правильный URL-адрес. Тем не менее, я пробовал несколько разных способов присвоения URL новой переменной, выходящей за рамки блока. Я пытаюсь назначить полученный URL-адрес другому глобальному NSURL
(обязательно используйте __block
) или попробуйте добавить его в массив, который, кажется, не обновляется вовремя для печати в NSLog. Я подозреваю, что это потому, что операция еще не закончена. Как я могу убедиться, что операция закончена, прежде чем я позвоню NSLog([streamUrls objectAtIndex:0]);
?
Вот код, который я использую.
NSURL *url = [contentUrls objectAtIndex:indexPath.row];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSONSound) {
NSString *stringURL = [NSString stringWithFormat:@"%@",
JSONSound[@"stream_url"], nil];
NSURL *streamURL = [NSURL URLWithString:stringURL];
NSLog(stringURL);
[streamUrls addObject:streamURL];
[self.collectionView reloadData];
} failure:nil];
[operation start];
NSLog([streamUrls objectAtIndex:0]);
EDIT: [self.collectionView reloadData];
эта линия, кажется, не влияют на ситуацию.