是否更好使用 - >代替 。在objective-c中实现`copyWithZone:`方法?

时间:2015-07-11 03:41:27

标签: objective-c nscopying

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

在我的理解中,因为你复制"复制" A类的实例,不需要在copyWithZone:方法中触发任何setter方法。因此copyOfInstance -> _p1 = _p1;优于copyOfInstance.p1 = _p1。是不是?

1 个答案:

答案 0 :(得分:2)

是。您正在构建新对象,就像您正在实现初始化程序一样。所以规则是一样的。正如您不能在init...方法中使用setter方法一样,因此您不能在copyWithZone:中使用setter。