1

假设有一个具有属性 p1 的类 A,并且 p1 的设置器已被覆盖。现在我想为 A 类实现 NSCopying 协议。

据我了解,由于您正在“复制”类 A 的实例,因此无需在方法中触发任何 setter 方法copyWithZone:。所以copyOfInstance -> _p1 = _p1;copyOfInstance.p1 = _p1. 这样对吗?

4

1 回答 1

2

是的。您正在形成新对象,就像您正在实现一个初始化程序一样。所以规则是一样的。就像你不能在方法中使用 setter 方法一样init...,你也不能在copyWithZone:.

于 2015-07-11T04:01:10.460 回答