dequeueReusableCellWithIdentifier错误在我的iOS5的UITable

2019-06-27 03:18发布

我在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;
}

Answer 1:

编辑 :此方法在iOS6的+ SDK新增。

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

但在iOS 5中,创建实例UITableViewCell我们一般使用以下方法: -

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

在iOS 5中,没有必要额外的参数,你已经在IOS 6(forIndexPath :)使用。

因此,改变你的方法。 它将工作。



Answer 2:

这就是为什么你会得到错误。 按照iOS的6.0文档设置的UITableView类参考指出dequeueReusableCellWithIdentifier:是在IOS 2.0和更高版本和可用dequeueReusableCellWithIdentifier:forIndexPath:在IOS可用6.0和更高。



文章来源: dequeueReusableCellWithIdentifier error in my UITableView in iOS5