假设有一个属性为p1的A类,并且p1的setter已被覆盖。现在我想为A类实现NSCopying协议。
在我的理解中,因为你复制"复制" A类的实例,不需要在copyWithZone:
方法中触发任何setter方法。因此copyOfInstance -> _p1 = _p1;
优于copyOfInstance.p1 = _p1
。是不是?
答案 0 :(得分:2)
是。您正在构建新对象,就像您正在实现初始化程序一样。所以规则是一样的。正如您不能在init...
方法中使用setter方法一样,因此您不能在copyWithZone:
中使用setter。