2013年1月12日土曜日

NSDateFormatter のキャッシュライブラリ

NSDateFormatterインスタンス作成が UITableViewCellのレンダリングを遅くする一因になるので作ったらしい。




こんな感じで使う。
NSDate *date = ...;

cell.detailTextLabel.text = [[CZDateFormatterCache mainQueueCache] localizedStringFromDate:date dateStyle:kCFDateFormatterShortStyle timeStyle:kCFDateFormatterShortStyle];

ソースを見るとiOSのカレントロケールの変更(NSCurrentLocaleDidChangeNotification)を見てキャッシュに反映するなど、気の利いた実装になっていた。

なお NSDateFormatterのインスタンスは非スレッドセーフなので、このキャッシュを使う場合もメインスレッドから使う。

ライセンス: Apache 2.0 license

0 件のコメント:

コメントを投稿