我知道如果您的对象将用作 NSDictionary 中的键,则需要它。是否还有其他类似需要 NSCopying 的时间?
如果我认为我不需要我的模型对象来符合 NSCopying,我可能错了吗?
我知道如果您的对象将用作 NSDictionary 中的键,则需要它。是否还有其他类似需要 NSCopying 的时间?
如果我认为我不需要我的模型对象来符合 NSCopying,我可能错了吗?
将 NSCopying 协议视为克隆例程的 Objective-C 版本。如果调用者要克隆您的对象,您想要的行为是什么?如果您的对象仅由原始类型组成,那么您无需担心这一点。但是,如果您有任何复杂类型作为成员,您可能希望克隆/复制它们,而不是向它们传递简单的引用。
NSCopying
有相当广泛的用途。任何时候一个对象拥有它不应该与其他对象共享的东西,你就需要一个副本。可变对象通常需要被复制,尽管NSMutableCopying
可能需要而不是NSCopying
.
当它被传递给复制属性或记录为复制其参数的任何其他方法时。