为什么tableview在iOS 6+模拟器上工作正常,但在iOS 5模拟器中它崩溃了

时间:2014-02-12 15:58:28

标签: ios objective-c uitableview

我使用下面的代码 - UITableViewDataSource 方法如下:

numberOfRowsInSection

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{

return [dataArray count];
}

的cellForRowAtIndexPath

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

// Configure the cell...
if (cell == nil) {

    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

cell.textLabel.text = dataArray[indexPath.row];

return cell;
}

2 个答案:

答案 0 :(得分:4)

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

但是在iOS 5中,要创建UITableViewCell的实例,我们通常使用这种方法: -

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

在iOS 5中,您不需要在iOS 6中使用过额外的参数。只需删除它就可以了(forIndexPath :)。

答案 1 :(得分:2)

没有错误信息很难说。 但我认为错误与dequeueReusableCellWithIdentifier:forIndexPath:有关,因为此方法仅适用于iOS 6.0及更高版本。请参阅Apple doc https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITableView_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableView/dequeueReusableCellWithIdentifier:forIndexPath:

中的更多内容