任何已经分析过具有渲染日期的 UITableViewCell 的滚动性能的人都知道创建 NSDateFormatter
实例是多慢的。CZDateFormatterCache
在第一次使用缓存时创建一个全局的 NSDateFormatter
实例缓存,可以被您的所有 UI 代码共享,例如
NSDate *date = ...;
cell.detailTextLabel.text = [[CZDateFormatterCache mainThreadCache] localizedStringFromDate:date dateStyle:kCFDateFormatterShortStyle timeStyle:kCFDateFormatterShortStyle];
由于 NSDateFormatter
实例不是线程安全的,您应该只从 "main" 线程中使用缓存。实际上,如果您尝试从另一个线程使用缓存,CZDateFormatterCache
会生成断言。
CZDateFormatterCache 由 Peyman Oreizy 和 Brian Cooke 在开发 CareZone Mobile for iOS 时创建。
Peyman Oreizy @peymano
Brian Cooke @bricooke
CZDateFormatterCache 在 Apache 2.0 许可证下可用。有关更多信息,请参阅 LICENSE 文件。