问题点:
通常我们在制作一些页面是通常会用到多选选项(如图一),一般我们会在模型中记录选中状态,下面就介绍一下出现内存暴涨的问题,及解决方法
图一
来到页面前的内存
初始内存
问题点出现:
- 点击了之后刷新Cell
看看我最初在点击时做了什么
点击方法
设置Cell方法
cell内属性方法
-
一直点击单个Cell后刷新Cell 内存飙升到了126 有点夸张啊
-
问题分析
1.其实我们看看代码, 其实我也没做什么就是给cell
的item
属性赋了值个值,你一下飙升这么高,你至于嘛
2.然后我把属性注释掉,发现 我去 尼玛还在涨...... 说明只要刷新UI就要吃内存 那我不刷了行不行(最后发现可行的),如下图只是CPU在飙升
解决办法
通过问题分析我们可以看出只要在不断的刷新UI内存会飙升,而且当前控制器释放了,内存下降的也不是太大,对此总结建议如下:
建议:
- 能用用方法设置的尽量不要去刷新整个控件
- 能不用属性的尽量不要用属性(例如我当前就是用到属性的设置的)
毕竟多一个属性也是多一份的消耗的
改进方法:通过方法进行设置(因为我cell里除了设置一些控件的内容后其实也在
Cell
中也用不到item
属性)
通过方法设置(绕开属性)
- 只是修改单个控件内容 建议提供单个方法进行修改
如下我只需要修改选择框图片(单独提供方法修改而不是通过属性再去设置了这样其他控件内容也是要修改的消耗性能)
最后改进代码点击方法