前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用UITableViewCell遇到的问题

使用UITableViewCell遇到的问题

作者头像
用户1451823
发布2018-09-13 16:14:40
7530
发布2018-09-13 16:14:40
举报
文章被收录于专栏:DannyHoo的专栏DannyHoo的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1337911

UITableView这个控件在iOS项目中几乎随处可见,甚至可以说每个应用中都有这个控件。可见此控件应用率之高。

最近在使用此控件时却遇到了一些问题,UITableView上的每个小的控件是UITableViewCell。大多数的UITableViewCell都需要自定义,这样会更灵活些,能满足我们功能上的需求。先说我的问题吧:

项目需求:一个UITableView上有两种类型的UITableViewCell。

根据项目需求这时需要自定义两种类型的UITableViewCell(这里我们称为A、B两种类型)。在我定义好了两种UITableViewCell之后在使用的时候却出现了问题:在我使用B类型对象的时候Xcode却告诉我此对象是A类型的对象,因此不能调用B类型对象的相关方法。我当时就蒙了,我明明利用B类创建的对象怎么就成了A类对象呢?代码如下:

1.if (row!=scoreModelArr.count) {

2.              ScoreModel * scoreModel = scoreModelArr objectAtIndex:row;

3.                ScoreCell * cell = ScoreCell cellWithTableView:tableView;

4.                cell.scoreModel = scoreModel;

5.                return cell;

6.            } else{ // 最后一个单元格

7.                FooterCell * cell = FooterCell cellWithTableView:tableView;

8.                cell.atlasArr = atlasArr;

9.                return cell;

10.            }

警告出现在第8行代码,警告此cell是ScoreCell类型,此对象没有setAtlasArr这个方法。当时我以为是Xcode的一个bug呢,最后发现还是我的问题.

发现原因:我跳到了方法:FooterCell cellWithTableView:tableView;中,发现问题出现在了这里。代码如下:

  • (instancetype)cellWithTableView:(UITableView *)tableView

{

static NSString * cellID = @"cellID";

id cell = tableView dequeueReusableCellWithIdentifier:cellID;

if (!cell) {

        cell = [self alloc initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellID];

NSLog(@"...");

    }

return cell;

}

咋一看是没有什么问题,可当我再跳到方法:ScoreCell cellWithTableView:tableView;中的时候发现这里代码和上面的代码完全一样,连CellID都是一样。由于UITableViewCell的唯一标识符都是一样的,让Xcode认为两种Cell都是一样的。

解决:在我将CellID修改之后,此问题得到了解决。

教训:切记唯一标识符的意义。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年09月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档