0

如何确保复制传递给初始化程序的对象,而不仅仅是稍后设置这些属性?

使用@NSCopying,Apple 表示我们可以实现copy类似 -property 的行为。默认情况下,该属性仅被分配,而不调用执行复制的设置器。

这有潜在的危险,因为我想依赖属性是不可变的,并且在我不知情的情况下不会被修改。(想想得到一个NSMutableString而不是NSString- 复制会给我一个不可变的实例)。

4

1 回答 1

1
  1. 声明属性时使用@NSCopying。
  2. 在初始化程序中调用 self.propertyname = newValue,以便调用 setter 并完成复制。
  3. 要知道何时从类外部修改值,请实现“set”观察者(这也需要实现 get)。
于 2015-06-19T12:27:25.743 回答