字符串插值是NSDate变量的不良做法吗?

时间:2016-06-16 09:04:26

标签: ios string swift nsdate nsdateformatter

UICollectionViewCell包含UILabel,文字设置为:

textLabel.text = String(format: "\(aDate)", arguments: [])

我观察到aDate字面值导致集合视图滚动显着滞后。 aDate不是延迟加载变量,而是简单的var aDate: NSDate?。我之所以不使用textLabel.text = "\(aDate)"的原因是该字符串实际上包含更多文字。

使用NSDate变量插入字符串是不好的做法吗? 我必须使用NSDateFormatter吗?

2 个答案:

答案 0 :(得分:0)

每当您想向用户呈现NSDate对象时,您应该使用NSDateFormatter,这将确保根据用户的区域设置,日历和常规显示首选项正确显示日期。这被认为是最佳做法。对于任何数字表示,名称,距离或其他可能在文化上不同的显示字符串,您也应该这样做,具体取决于您在地球上的位置。

答案 1 :(得分:0)

滚动滞后问题是由于标签的NSLayoutConstraints造成的。解决方案是将标签锚定到UICollectionViewCell内容视图,而不是内容视图中的其他视图。通过Allocations Instruments分析发现了这一点。