我很困惑,看苹果的文档和阅读可可设计模式。在copyWithZone:的苹果文档中,它的内容如下:
此方法存在,因此在需要符合NSCopying协议的对象的情况下,可以使用类对象。例如,此方法允许您将类对象用作NSDictionary对象的键。不应重写此方法。
对于copy,它的内容如下:
--对于采用NSCopying协议的类来说,这是一种方便的方法。如果copyWithZone:没有实现,则会引发异常。
NSObject本身不支持NSCopying协议。子类必须支持协议并实现copyWithZone:方法。copyWithZone:方法的子类版本应该首先向super发送消息,以合并其实现,除非子类直接从NSObject下降。
在Cocoa中的示例中,它们覆盖copyWithZone:和mutableCopyWithZone:,但在遵循NSCopying协议时不覆盖copy。如果我想使用NSDictionary中的自定义子类作为键,我应该这样做吗?
还是我要重写copy?
类似地,如果我做了[myClass copy],那么它会调用copyWithZone:或copy作为我的自定义子类吗?谢谢。
三星手机烫手怎么回事
炒茄子不變色終極指南:不發黑不吸油的完美秘訣