Заполните UITableView только после того, как источник данных не пуст - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть эта простая реализация, которая готовит массив, который мне нужно использовать в качестве источника данных UITableView.Проблема в том, что когда я запускаю код, он падает, потому что блок requestWithCompletionHandler получает его значение после настройки табличного представления.Таким образом, нет значения индекса для ячейки.

Мой вопрос заключается в том, как я могу "активировать" табличное представление только тогда, когда массив self.json имеет его значение?Или какой будет правильный способ избежать сбоя из-за пустого массива?

сообщение об ошибке:

Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndexedSubscript:]: index 0 beyond bounds for empty array'
   @property (strong, nonatomic) NSMutableArray *json;


- (void)viewDidLoad {

 [super viewDidLoad];  
  self.json =[[NSMutableArray alloc] init];

 [self.api requestWithCompletionHandler:^(NSArray<NSDictionary *> * result, NSError * error) {

     for (NSDictionary* x in result) {
            NSLog(@"object: %@", [x objectForKey:@"postDate"]);

            [self.json addObject:x];

        }

    }];

}   

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"cellF";
    ArticleFeedCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    NSDictionary *diction = self.json[indexPath.row];

    cell.articleWebsiteLabel.text = diction[@"website"];

    return cell;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...