我正在尝试AFJSONRequestOperation
从 JSON 提要中提取一份数据。
以下代码很好地提取了 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]);
编辑:[self.collectionView reloadData];
这条线似乎不会影响这种情况。