为什么Objective C中没有'mutablecopy'限定符?

时间:2012-08-01 15:16:47

标签: objective-c cocoa properties

  

可能重复:
  What's the best way to use Obj-C 2.0 Properties with mutable objects, such as NSMutableArray?

请原谅我可怜的英语:)

在Objective C中,'copy'限定符不保留可变性。我们必须使一个房产“强大”或自己提供一个制定者。

我只是想知道为什么没有提供'mutablecopy'限定符。任何特定的原因或设计权衡?

1 个答案:

答案 0 :(得分:3)

  

为什么没有'mutablecopy'?

因为制作一个可变副本实际上具有深刻而微妙的含义,使其变得不重要。同样,你几乎从不希望对象内部存储在外部是可变的。

此外,如果属性支持可变副本,则需要有一个setter版本和一个getter版本,因为每个版本都有一个非常不同的潜在角色(如果你真的想要一个可变属性,你可能需要一个可变复制setter和normal retain getter。或者相反。)。

这些都没有解决深度和浅层可变拷贝的更糟糕的问题。