[求助]关于自定义 'UITableView', 'UITableViewCell' 复用的问题。

2016-11-01 13:01:25 +08:00
 lisonfan

懒加载的时候注册 Cell :

- (UITableView *)homeTableView{
    if (!_homeTableView) {
        _homeTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height) style:UITableViewStylePlain];
        self.homeTableView.delegate = self;
        self.homeTableView.dataSource = self;
        [self.homeTableView registerClass:[HomeTableViewCell class] forCellReuseIdentifier:_identifier];
        [self addSubview:self.homeTableView];
    }
    return _homeTableView;
}

然后创建 Cell 的时候报错 :

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    HomeTableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:_identifier forIndexPath:indexPath];
    NSLog(@"%@",cell);
    NSDictionary * dic = _nowNewsDataArr[indexPath.row];
    [cell config:dic];
    return cell;
}

我实在没办法了,搜了好久没搜到

3189 次点击
所在节点    iDev
21 条回复
iOran
2016-11-09 23:52:39 +08:00
最重要的错误是生成 homeTableView 的时候。本意是写一个 getter 方法来获取 homeTableView ,但你在 getter 方法里面调用 self. homeTableView ,这里有严重的 Bug 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/317057

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX