我的ios应用程序需要大量使用NSDateFormatter,我知道创建NSDateFormatter的实例很昂贵,但创建很少的单例实例很好,但我需要使用大量的日期格式,我无法为所有这些格式创建实例格式,
正在做什么创建一个单独的NSDateFormatter,使用常见设置,如时区,语言环境,每当我想要克隆nsdateformatter 并对其进行更改时,
我的问题是
复制是否优于克隆?
处理多种日期格式的最佳做法是什么?
答案 0 :(得分:3)
不幸的是,日期格式化程序设置的费用是在第一次使用它后创建它或设置它的任何属性。因此,对于您使用的每种格式化程序配置,您都无法至少避免一次成本。
我有一些建议:
答案 1 :(得分:0)
我无法谈论性能问题(运行您自己的测试以查看哪个更快)。
但我要做的是使用日期格式作为关键字来创建日期格式化程序的字典。
编写如下方法:
- (NSDateFormatter *)dateFormatterForFormat:(NSString *)dateFormat {
NSDateFormatter *formatter = formats[dateFormat];
if (!formatter) {
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:dateFormat];
// any other setup needed
formats[dateFormat] = formatter;
}
return formatter;
}
在代码中,formats
是您在课堂上设置的NSMutableDictionary
ivar或静态变量。