在TableView调用之前NSArray没有完成?

时间:2015-08-08 21:23:20

标签: ios uitableview core-data nsarray

在viewDidLoad中,我调用

if (self.selectedObjectID) {
    CoreDataHelper *cdh = [(AppDelegate *)[[UIApplication sharedApplication] delegate] cdh];
    Location *locate = (Location*)[cdh.context existingObjectWithID:self.selectedObjectID error:nil];


    self.addressValue = [
        [NSArray alloc] initWithObjects:locate.intersectionMain,
        locate.intersectionSide,
        locate.city,
        locate.zipCode,
        locate.county,
        locate.stateProvince,
        locate.country,
        locate.intersectionID,
        nil
    ];
}

表视图调用时:

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

我在addressValue变量上遇到索引超出范围的问题。它声称阵列中只有一个项目。有趣的是,这个确切的代码在iPad上运行得很好,但它打破了超出iPhone界限的索引。无论从位置的什么值首先加载到数组我只有一个。我不明白。这是一个耗尽时间的问题。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

来自NSArray的模型数据应始终反映UITableViewDatasource中使用的内容。为此,您应该为数组加载值或者为空数组,但如果在UITableViewDatasource方法中使用它,则不应为nil。