使用->;而不是要在objective-c中实现`copyWithZone:`方法?

使用->;而不是要在objective-c中实现`copyWithZone:`方法?,objective-c,nscopying,Objective C,Nscopying,假设有一个属性为p1的类,p1的setter已被覆盖。现在我想为类A实现NSCopying协议 根据我的理解,因为您正在“复制”类A的实例,所以不需要在copyWithZone:method中触发任何setter方法。所以copyOfInstance->\u p1=\u p1优于copyOfInstance.p1=\u p1。是吗?是的。形成新对象的方式与实现初始值设定项的方式完全相同。所以规则是一样的。正如您不能在init…方法中使用setter方法一样,您也不能在copyWithZone:中

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


根据我的理解,因为您正在“复制”类A的实例,所以不需要在
copyWithZone:
method中触发任何setter方法。所以
copyOfInstance->\u p1=\u p1优于
copyOfInstance.p1=\u p1
。是吗?

是的。形成新对象的方式与实现初始值设定项的方式完全相同。所以规则是一样的。正如您不能在
init…
方法中使用setter方法一样,您也不能在
copyWithZone:
中使用setter方法

谢谢!顺便说一句,我总是用self。在init中设置变量。新的经验教训。:)我关心的一个问题是问题描述中使用了->符号。这是我第一次使用它,我不确定它是否正确。