為什么要優(yōu)化NSDateFormatter?
首先,過度的創(chuàng)建NSDateFormatter用于NSDate與NSString之間轉(zhuǎn)換,會導(dǎo)致App卡頓,打開Profile工具查一下性能,你會發(fā)現(xiàn)這種操作占CPU比例是非常高的。據(jù)官方說法,創(chuàng)建NSDateFormatter代價是比較高的,如果你使用的非常頻繁,那么建議你緩存起來,緩存NSDateFormatter一定能提高效率。

官方解釋
在iOS 7、macOS 10.9及以上系統(tǒng)版本,NSDateFormatter都是線程安全的,因此我們無需擔(dān)心日期格式化對象在使用過程中被另外一條線程給修改,為了提高性能,我們可以創(chuàng)建一個NSDateFormatter的分類,使用GCD的單例模式去創(chuàng)建一個NSDateFormatter的對象。

獲取全局的NSDateFormatter對象

這樣可以直接調(diào)用初始化方法