9. iOS开发优化
省电
如果使用定位,需要在定位完毕之后关闭定位,或者降低定位的频率,不停的定位会消耗电量。
如果使用蓝牙,需要使用的时候再开启蓝牙,用完之后关闭蓝牙,蓝牙也很耗电。
优化算法,减少循环次数,大量循环会让CPU一直处于忙碌状态,特别费电。
尽量不要使用网络轮询(心跳包、定时器),推荐使用推送。
timer的时间间隔不宜太短,满足需求即可。
不要频繁刷新页面,能刷新1行
cell
的最好刷新一行,尽量不要reloadData
。线程适量,不宜过多。
性能优化
避免使用庞大的XIB、Storyboard,尽量使用纯代码开发界面,尤其对于App启动界面、首页。
使用懒加载的方式延迟加载界面。
避免反复处理数据。
避免使用
NSDateFormatter
和NSCalendar
。图片缓存的取舍
UIImage
加载图片方式一般有两种:A.imagedNamed
初始化、B.imageWithContentsOfFile
初始化二者不同之处在于,imageNamed
默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片对象,则从指定地方加载图片然后缓存对象,并返回这个图片对象.而imageWithContentsOfFile
则仅只加载图片,不缓存.大量使用imageNamed
方式会在不需要缓存的地方额外增加开销CPU的时间来做这件事.当应用程序需要加载一张比较大的图片并且使用一次性,那么其实是没有必要去缓存这个图片的,用imageWithContentsOfFile
是最为经济的方式,这样不会因为UIImage
元素较多情况下,CPU会被逐个分散在不必要缓存上浪费过多时间.使用场景需要编程时,应该根据实际应用场景加以区分,UIImage
虽小,但使用元素较多问题会有所凸显。
Last updated