Как заставить BLOCK выполняться синхронно в iOS? - PullRequest
0 голосов
/ 04 февраля 2020

Существует tableView, который имеет 5 строк. Модель первого ряда должна быть получена из блока . Я хочу получить данные первого ряда сначала вместо этого, наконец, Я искал и пробовал способы ниже, но они либо крадут sh, либо ждут бесконечно:

1.GCD Group 2.dispatch_semaphore

Я использовал эти способы в основном потоке, и я не знаю, использовал ли я это неправильно. Пожалуйста, дайте мне знать, если есть какие-либо предложения. Я хочу знать лучший способ решить эту проблему.

Вот блок:

NSMutableArray <MyInfoViewCellModel *> *tmpArray = [[NSMutableArray alloc] init];
@weakify(self);
[[HYLAnchorVideoManager sharedObject] queryAnchorFulleVideo:^(NSArray<HYLAnchorVideoModel *> *videoModels, BOOL success) {
        @strongify(self);
        MyInfoViewCellModel *model1 = [[MyInfoViewCellModel alloc] init];
        model1.modelType = MyInfoViewCellModelTypeVideos;
        model1.title = @"我的视频";
        model1.itemsArray = [self createItemModelsWithAnchorVideoModels:videoModels];
        [tmpArray addObject:model1];
}];
...