У меня есть эта простая реализация, которая готовит массив, который мне нужно использовать в качестве источника данных 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;
}