格式化NSDate落后于我的UITableVIew

时间:2012-11-16 11:04:08

标签: iphone objective-c ios ipad nsdate

在调用tableView:cellForRowAtIndexPath:期间,我正在调用此函数将日期格式化为时间:

- (NSString *)_formatDate:(NSDate *)date withString:(NSString *)string {
    NSLocale *locale = [NSLocale currentLocale];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    NSString *dateFormat = [NSDateFormatter dateFormatFromTemplate:string options:0 locale:locale];
    [formatter setDateFormat:dateFormat];
    [formatter setLocale:locale];
    return [formatter stringFromDate:date];
}

我正在传递行的日期以及字符串@"HH:mm"

不幸的是,这似乎落后于我的桌面观点。我的部分标题中发生了类似的事情,我将格式化为完整日期。

这有什么理由让我的应用程序如此滞后?这些电话是否特别密集?

由于

汤姆

1 个答案:

答案 0 :(得分:3)

{p} There is word creating date formatters is expensive。使用实例变量并在viewDidLoad中设置单个日期格式化程序,然后在每次需要时重用相同的格式化程序。或者懒得加载一个。

如果创建不是昂贵的,而是解析日期字符串,请预先保存已解析的日期副本并使用它。你不得不担心位置和区域设置的变化,所以它变得更加复杂。