ios项目中给变量赋值后,变量为null的情况

来源:互联网 发布:淘宝开店卖家中心在哪 编辑:程序博客网 时间:2024/06/06 08:28

在做ios项目的过程中,有时会发现运行后内容不显示。加了断点,查出问题出在对象根本没有获取到传递的值。从程序运行的顺序依次检查,一种情况是赋值时值本身就是空的,还有就是赋值对象没有初始化,本人犯的错误属于后者。


上述情况出在简单的赋值问题上,在自定义UITableViewCell变量时常犯的错误是:自定义UITableViewCell时复写了父类的初始化方法,该方法和视图控制器中初始化的方式不一致,导致单元格创建失败,内容自然不能显示。


举个正确的例子:

在视图控制器中:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{    MovieCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];    if(cell == nil){        cell = [[MovieCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:iden];    }    cell.backgroundColor = [UIColor clearColor];    cell.movieModel = _movieModels[indexPath.row];    return cell;}

在自定义的UITableViewCell类中,类名为MovieCell

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];    if(self){        //自定义单元格        [self _initCell];    }    return self;}

总结:在类中定义的实例变量使用之前一定要初始化;自定义UITableViewCell时复写的父类的初始化方法,要和视图控制器中的初始化方式一致。

0 0
原创粉丝点击