就是tableView中有多重cell样式,我把它们都放在了一个xib文件中了。创建cell代码如下:
 NSString *idf = [NSString stringWithFormat:@"cell%ld",indexPath.row];
    SleepRecordDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:idf];
    if (!cell) {
        cell = [[[NSBundle mainBundle] loadNibNamed:@"SleepRecordDetailCell" owner:nil options:nil] objectAtIndex:indexPath.row];
    }
return cell;当创建cell的时候,xib中的其他cell会执行- (void)awakeFromNib 和 - (void)dealloc方法,应该就是传说中的初始化和销毁吧。我认为这样肯定会占用一定的资源,有什么解决办法吗?

解决方案 »

  1.   

    你重用的写法有点问题,按你这种方式根本不会重用,除非你是故意不重用
    另外这种写法不流行了好像,我是每个cell样式都有对应的一套.h.m和.xib文件
    然后在创建tableview的时候通过tableview的registerNib方法注册这些cell
    最后要生成cell的时候只要通过dequeueReusableCellWithIdentifier这个方法直接生成就行了
    也不需要if (!cell)的判断,因为注册过的cell,如果第一次为空的话系统会自动帮你创建
      

  2.   

    我只是想知道一个xib中放多个cell还有没有优化的空间和方法了?