从'UITableViewCell'分配给'TableViewCell'的不兼容的指针类型

时间:2015-11-22 21:31:05

标签: ios objective-c uitableview

我正在尝试此代码并收到警告

  

从'UITableViewCell'分配给'GuideTableViewCell'的指针类型不兼容

在行

cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BusinessTableViewCell"];

完整代码:

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

   BusinessTableViewCell * cell = [self.tableView dequeueReusableCellWithIdentifier:@"BusinessTableViewCell"];
   if (!cell) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BusinessTableViewCell"];
   }

   BusinessInfo * business = self.businesses[indexPath.row];
   cell.business = business;
   return cell;
}

也试过

BusinessTableViewCell *cell = [[UITableViewCell alloc]initWithStyle: UITableViewCellStyleDefault reuseIdentifier:@"BusinessTableViewCell"];

仍然得到错误,任何人都可以给我一些帮助。

感谢

2 个答案:

答案 0 :(得分:1)

您的代码中有两个问题。它应该是:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    BusinessTableViewCell * cell = (BusinessTableViewCell *)[self.tableView dequeueReusableCellWithIdentifier:@"BusinessTableViewCell"];

    if(!cell)
    {
        cell = [[BusinessTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"BusinessTableViewCell"];
    }

    BusinessInfo * business = self.businesses[indexPath.row];
    cell.business = business;

    return cell;
}
  1. 您需要将dequeueReusableCellWithIdentifier投射到正确的班级。
  2. 创建新单元格时,需要使用正确的类型。

答案 1 :(得分:0)

您收到错误,因为您的代码无法正常工作。

您的代码需要BusinessTableViewCell。您创建一个UITableViewCell。您应该创建一个BusinessTableViewCell。