可能重复:
What's the best way to use Obj-C 2.0 Properties with mutable objects, such as NSMutableArray?
请原谅我可怜的英语:)
在Objective C中,'copy'限定符不保留可变性。我们必须使一个房产“强大”或自己提供一个制定者。
我只是想知道为什么没有提供'mutablecopy'限定符。任何特定的原因或设计权衡?
答案 0 :(得分:3)
为什么没有'mutablecopy'?
因为制作一个可变副本实际上具有深刻而微妙的含义,使其变得不重要。同样,你几乎从不希望对象内部存储在外部是可变的。
此外,如果属性支持可变副本,则需要有一个setter版本和一个getter版本,因为每个版本都有一个非常不同的潜在角色(如果你真的想要一个可变属性,你可能需要一个可变复制setter和normal retain getter。或者相反。)。
这些都没有解决深度和浅层可变拷贝的更糟糕的问题。