1

情報を取得したい映画ごとに 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];
}
4

1 に答える 1