OC的cell回收重利用问题

OC的cell提供了一个从队列取出使用过的cell重复利用的函数html


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"1"];函数

经过这个函数能够取出被回收的cell,反复利用,从而在界面拉动的时候节约内存(tableview的cell会在界面可视范围内对看不见的cell进行回收,不是销毁)。工具


可是今天我测试时候故意不从队列取,而是写  UITableViewCell *  cell=[[UITableViewCell alloc] init];测试

,而后观察左边内存变化状况,发如今table拉动的时候并无增长内存。这是怎么回事,而后我又把celll内存打印了一下优化

 NSLog(@"%p",cell);   spa

结果以下:code

2015-02-07 15:32:57.922 Hello[3901:117856] 0x78879070
2015-02-07 15:32:57.924 Hello[3901:117856] 0x7887b340
2015-02-07 15:32:57.925 Hello[3901:117856] 0x7887ee20
2015-02-07 15:33:02.210 Hello[3901:117856] 0x78e68c10
2015-02-07 15:33:02.744 Hello[3901:117856] 0x78e68e00
2015-02-07 15:33:09.698 Hello[3901:117856] 0x78e68f90
2015-02-07 15:33:13.476 Hello[3901:117856] 0x78879070
2015-02-07 15:33:17.094 Hello[3901:117856] 0x787792e0
2015-02-07 15:33:19.109 Hello[3901:117856] 0x78782a50
2015-02-07 15:33:20.907 Hello[3901:117856] 0x7887a500
2015-02-07 15:33:28.241 Hello[3901:117856] 0x7876e060
2015-02-07 15:33:28.491 Hello[3901:117856] 0x78782f10
2015-02-07 15:33:28.741 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:29.080 Hello[3901:117856] 0x78dc92d0
2015-02-07 15:33:29.291 Hello[3901:117856] 0x78dc8ee0
2015-02-07 15:33:29.591 Hello[3901:117856] 0x78dcb8b0
2015-02-07 15:33:29.757 Hello[3901:117856] 0x78782a50
2015-02-07 15:33:31.131 Hello[3901:117856] 0x7887f440
2015-02-07 15:33:31.209 Hello[3901:117856] 0x78782a50
2015-02-07 15:33:31.275 Hello[3901:117856] 0x78786f70
2015-02-07 15:33:31.359 Hello[3901:117856] 0x7887a500
2015-02-07 15:33:31.443 Hello[3901:117856] 0x7887f440
2015-02-07 15:33:31.591 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:31.826 Hello[3901:117856] 0x78786f70
2015-02-07 15:33:32.524 Hello[3901:117856] 0x78879070
2015-02-07 15:33:32.758 Hello[3901:117856] 0x7887bbe0
2015-02-07 15:33:32.952 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:33.091 Hello[3901:117856] 0x7887f440
2015-02-07 15:33:33.274 Hello[3901:117856] 0x78786f70
2015-02-07 15:33:33.542 Hello[3901:117856] 0x78879070
2015-02-07 15:33:33.982 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:34.124 Hello[3901:117856] 0x78dc8ee0
2015-02-07 15:33:34.275 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:34.502 Hello[3901:117856] 0x78782820
2015-02-07 15:33:34.674 Hello[3901:117856] 0x78e67e20
2015-02-07 15:33:34.775 Hello[3901:117856] 0x78e6c3c0
2015-02-07 15:33:35.692 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:35.842 Hello[3901:117856] 0x78879070
2015-02-07 15:33:36.042 Hello[3901:117856] 0x78dc8ee0
2015-02-07 15:33:36.325 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:36.476 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:36.642 Hello[3901:117856] 0x78879070
2015-02-07 15:33:36.891 Hello[3901:117856] 0x78dc8ee0
2015-02-07 15:33:39.724 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:40.108 Hello[3901:117856] 0x78e67e20
2015-02-07 15:33:40.375 Hello[3901:117856] 0x78dcabb0
2015-02-07 15:33:40.474 Hello[3901:117856] 0x78e6c440
2015-02-07 15:33:40.557 Hello[3901:117856] 0x78782820
2015-02-07 15:33:40.691 Hello[3901:117856] 0x7866bfe0
2015-02-07 15:33:40.974 Hello[3901:117856] 0x78879070
2015-02-07 15:33:41.606 Hello[3901:117856] 0x78782820
2015-02-07 15:33:42.258 Hello[3901:117856] 0x78782820
2015-02-07 15:33:42.443 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:42.527 Hello[3901:117856] 0x78786f70
2015-02-07 15:33:42.610 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:42.711 Hello[3901:117856] 0x78879070
2015-02-07 15:33:42.844 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:43.010 Hello[3901:117856] 0x78e67e20
2015-02-07 15:33:43.277 Hello[3901:117856] 0x7887f440
2015-02-07 15:33:44.261 Hello[3901:117856] 0x78e6c3c0
2015-02-07 15:33:44.346 Hello[3901:117856] 0x78782820
2015-02-07 15:33:44.411 Hello[3901:117856] 0x78786f70
2015-02-07 15:33:44.513 Hello[3901:117856] 0x78782a50
2015-02-07 15:33:44.613 Hello[3901:117856] 0x787872f0
2015-02-07 15:33:44.762 Hello[3901:117856] 0x78879070
2015-02-07 15:33:44.946 Hello[3901:117856] 0x78782820
2015-02-07 15:33:45.960 Hello[3901:117856] 0x7887f440
2015-02-07 15:33:46.277 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:46.377 Hello[3901:117856] 0x78782820
2015-02-07 15:33:46.477 Hello[3901:117856] 0x78879070
2015-02-07 15:33:46.610 Hello[3901:117856] 0x78dbd8c0
2015-02-07 15:33:46.793 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:47.060 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:47.443 Hello[3901:117856] 0x78879070
2015-02-07 15:33:47.510 Hello[3901:117856] 0x78782820
2015-02-07 15:33:47.576 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:47.677 Hello[3901:117856] 0x78dbd8c0
2015-02-07 15:33:47.810 Hello[3901:117856] 0x787872f0
2015-02-07 15:33:47.993 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:48.894 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:48.993 Hello[3901:117856] 0x78dc8fc0
2015-02-07 15:33:49.161 Hello[3901:117856] 0x78782820
2015-02-07 15:33:49.378 Hello[3901:117856] 0x78dbd8c0
2015-02-07 15:33:49.794 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:50.620 Hello[3901:117856] 0x78879070
2015-02-07 15:33:50.711 Hello[3901:117856] 0x78dc81f0
2015-02-07 15:33:50.794 Hello[3901:117856] 0x78e67060
2015-02-07 15:33:50.894 Hello[3901:117856] 0x78e67e20
2015-02-07 15:33:51.027 Hello[3901:117856] 0x78879070

用工具查找其中几个地址就会发现有重复的,说明OC已经对这个cell的存取进行了内存优化,即便不从队列里面拿去也不会占用更多内存使用,目前发现是这样,可是建议仍是继续用htm

dequeueReusableCellWithIdentifier 函数,让程序更可靠队列

相关文章
相关标签/搜索