仅在数据源不为空后填充UITableView

时间:2019-02-06 01:06:43

标签: objective-c uitableview

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

0 个答案:

没有答案