一个xib中放多个cell,在创建其中一个cell时,其他cell会执行awakeFromNib和dealloc方法

帅气的cc 2017-03-20 04:59:45
就是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方法,应该就是传说中的初始化和销毁吧。我认为这样肯定会占用一定的资源,有什么解决办法吗?
...全文
306 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
帅气的cc 2017-03-21
  • 打赏
  • 举报
回复
我只是想知道一个xib中放多个cell还有没有优化的空间和方法了?
不担心 2017-03-20
  • 打赏
  • 举报
回复
你重用的写法有点问题,按你这种方式根本不会重用,除非你是故意不重用 另外这种写法不流行了好像,我是每个cell样式都有对应的一套.h.m和.xib文件 然后在创建tableview的时候通过tableview的registerNib方法注册这些cell 最后要生成cell的时候只要通过dequeueReusableCellWithIdentifier这个方法直接生成就行了 也不需要if (!cell)的判断,因为注册过的cell,如果第一次为空的话系统会自动帮你创建
帅气的cc 2017-03-20
  • 打赏
  • 举报
回复
有一种方法就是,你把那个数组设为全局变量,但是苹果文档中好像是说不予许持有这个数组。

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧