12

我知道如果您的对象将用作 NSDictionary 中的键,则需要它。是否还有其他类似需要 NSCopying 的时间?

如果我认为我不需要我的模型对象来符合 NSCopying,我可能错了吗?

4

3 回答 3

7

将 NSCopying 协议视为克隆例程的 Objective-C 版本。如果调用者要克隆您的对象,您想要的行为是什么?如果您的对象仅由原始类型组成,那么您无需担心这一点。但是,如果您有任何复杂类型作为成员,您可能希望克隆/复制它们,而不是向它们传递简单的引用。

于 2010-04-04T02:23:14.800 回答
4

NSCopying有相当广泛的用途。任何时候一个对象拥有它不应该与其他对象共享的东西,你就需要一个副本。可变对象通常需要被复制,尽管NSMutableCopying可能需要而不是NSCopying.

于 2010-04-04T02:20:52.107 回答
3

当它被传递给复制属性或记录为复制其参数的任何其他方法时。

于 2010-04-04T02:19:36.077 回答