我有一个简单的实现,它为我准备用作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;
}