为什么要优化NSDateFormatter?
首先,过度的创建NSDateFormatter
用于NSDate
与NSString
之间转换,会导致App卡顿,打开Profile工具查一下性能,你会发现这种操作占CPU比例是非常高的。据官方说法,创建NSDateFormatter
代价是比较高的,如果你使用的非常频繁,那么建议你缓存起来,缓存NSDateFormatter
一定能提高效率。
Creating a date formatter is not a cheap operation. If you are likely to use a formatter frequently, it is typically more efficient to cache a single instance than to create and dispose of multiple instances. One approach is to use a static variable
优化方式有哪些?
a.延迟转换
即只有在UI
需要使用转换结果时在进行转换。
b.Cache in Memory
根据NSDateFormatter
线程安全性,不同的iOS系统版本内存缓存如下:
- prior to iOS 7
如果直接采用静态变量进行存储,那么可能就会存在线程安全问题,在iOS 7之前,NSDateF