情報を取得したい映画ごとに JSON データを返す別の API 呼び出しを行う必要があります。映画 ID の配列をループして、viewDidLoad メソッドでそれらのそれぞれに populateAssetObject を呼び出そうとしています。
デバッグ モードに入って for ループを実行すると、5 つのタイトルすべてがムービーに正しく読み込まれますが、通常どおり実行すると、ムービー配列は最初の 2 つのオブジェクトだけになります。これはマルチスレッドが原因であると思いますか?私はその分野の専門家ではありませんが、私の問題が何であるか知っている人はいますか?
viewDidLoad:
_movies = [[NSMutableArray alloc] init];
for (NSString *curr in assetIDs) {
[self populateAssetObject:curr];
}
ここに populateAssetObject メソッドがあります
-(void)populateAssetObject:(NSString *)videoID {
NSString *urlString = [NSString stringWithFormat:@"[api url]", videoID];
NSURL *url = [NSURL URLWithString:restURLString];
NSData *data = [[NSData alloc] initWithContentsOfURL:url];
NSError *error = nil;
NSDictionary *contents = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
OVDAsset *newAsset = [[OVDAsset alloc] init];
[newAsset setTitle:[contents valueForKey:@"title"]];
[newAsset setDescription:[contents valueForKey:@"longDescription"]];
[self.movies addObject:newAsset];
}