Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
可能重复: 将 Obj-C 2.0 属性与可变对象(例如 NSMutableArray)一起使用的最佳方法是什么?
请原谅我糟糕的英语:)
在 Objective C 中,'copy' 限定符不保留可变性。我们必须让一个属性“强大”或自己提供一个 setter。
我只想知道为什么没有提供 'mutablecopy' 限定符。任何具体原因或设计权衡?
为什么没有“可变副本”?
因为制作可变副本实际上具有深刻而微妙的含义,这使它变得不平凡。同样,您几乎从不希望对象内部存储在外部是可变的。
此外,如果属性要支持可变副本,则需要有一个用于 setter 的版本和一个用于 getter 的版本,因为每个版本都有非常不同的潜在角色(如果您确实想要一个可变属性,您可能需要一个可变复制 setter和正常的保留吸气剂。或相反。)。
这些都没有解决深层与浅层可变副本的更严重问题。