AFJSONRequestOperation
JSON フィードから 1 つのデータを取得するために使用しようとしています。
次のコードは 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];
この行は状況に影響を与えないようです。