8

我知道 copy 创建一个对象的不可变副本,但我只想知道 copywithzone 是如何工作的,以及 copy 和 copywithzone 之间的基本区别是什么

4

2 回答 2

13

copy只是 的缩写copyWithZone:,使用默认区域。

您很少会copyWithZone:直接调用,尽管需要定义/实现它才能采用@protocol NSCopying. 所以你通常copyWithZone:只会在copyWithZone:. 同样,您通常会避免实现copy,而只是让 call 的默认实现copy通过copyWithZone:

于 2012-08-21T05:39:14.130 回答
5

NSZone是一个与 iOS 无关的遗留概念。默认情况下-copyNSObject将调用-copyWithZone:默认区域。

于 2012-08-21T05:37:32.683 回答