NSDate 变量的字符串插值是不好的做法吗?
Is string interpolation bad practice for NSDate variables?
一个 UICollectionViewCell
包含一个 UILabel
,文本设置为:
textLabel.text = String(format: "\(aDate)", arguments: [])
我观察到 aDate
文字导致集合视图滚动明显滞后。 aDate
不是延迟加载变量而是简单的 var aDate: NSDate?
。顺便说一句,我不只使用 textLabel.text = "\(aDate)"
的原因是该字符串实际上包含更多文字。
用 NSDate
变量插入字符串是不好的做法吗?
我必须使用 NSDateFormatter
吗?
每当您想向用户显示 NSDate 对象时,您应该使用 NSDateFormatter,这将确保根据用户的区域设置、设置日历和一般显示首选项将日期正确显示给用户。这被认为是最佳实践。您还应该对任何数字表示、名称、距离或其他显示字符串执行相同的操作,这些字符串可能会因您在地球上的位置而在文化上有所不同。
滚动滞后的问题是由于标签的NSLayoutConstraints
。解决方案是将标签锚定到 UICollectionViewCell
内容视图,而不是内容视图内的其他视图。通过 Allocations Instruments 分析发现了这一点。
一个 UICollectionViewCell
包含一个 UILabel
,文本设置为:
textLabel.text = String(format: "\(aDate)", arguments: [])
我观察到 aDate
文字导致集合视图滚动明显滞后。 aDate
不是延迟加载变量而是简单的 var aDate: NSDate?
。顺便说一句,我不只使用 textLabel.text = "\(aDate)"
的原因是该字符串实际上包含更多文字。
用 NSDate
变量插入字符串是不好的做法吗?
我必须使用 NSDateFormatter
吗?
每当您想向用户显示 NSDate 对象时,您应该使用 NSDateFormatter,这将确保根据用户的区域设置、设置日历和一般显示首选项将日期正确显示给用户。这被认为是最佳实践。您还应该对任何数字表示、名称、距离或其他显示字符串执行相同的操作,这些字符串可能会因您在地球上的位置而在文化上有所不同。
滚动滞后的问题是由于标签的NSLayoutConstraints
。解决方案是将标签锚定到 UICollectionViewCell
内容视图,而不是内容视图内的其他视图。通过 Allocations Instruments 分析发现了这一点。