在iOS5中的UITableView中出现dequeueReusableCellWithIdentifier错误

时间:2012-08-18 06:13:47

标签: ios ios5 uitableview ios6

我在iOS 5中收到此错误

-[UITableView dequeueReusableCellWithIdentifier:forIndexPath:]: unrecognized selector sent to instance 0xa217200

但是,iOS 6中没有错误。我该如何解决这个问题?这是我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"MyCell";

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

    if (!cell)
    {
        cell = [[UITableViewCell alloc]
        initWithStyle: UITableViewCellStyleSubtitle
        reuseIdentifier: CellIdentifier];
    }

    return cell;
}

2 个答案:

答案 0 :(得分:129)

编辑:此方法是在iOS6 + SDK中新添加的。

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

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

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

在iOS 5中,您不需要在iOS 6中使用过额外的参数。(forIndexPath :)。

所以改变你的方法。它会起作用。

答案 1 :(得分:7)

这就是你收到错误的原因。根据iOS 6.0文档集,UITableView类参考声明{i}在iOS 2.0及更高版本中可用,dequeueReusableCellWithIdentifier:在iOS 6.0及更高版本中可用。