在objc中我看到了这段代码:
- (void)setSubtitle:(NSAttributedString *)subtitle
{
self.subtitleLabel.attributedText = [subtitle copy];
}
它基本上是复制一个不可变的字符串。 有什么缘故吗?这是一个优势还是浪费时间? 我不能问作者,因为他好了,不再在这里了。 我没有看到这样做的重点。
答案 0 :(得分:6)
使用copy
是因为某人实际上可以将可变属性字符串传递给您的setSubtitle:
方法。使用copy
可确保您拥有属性字符串的不可变副本,以防原始可变版本被修改。
但在这种情况下,它是毫无意义的,因为attributedText
的{{1}}属性被声明为UILabel
,因此您实际上在代码中对copy
进行了冗余调用。< / p>