NSCoding和NSCopying在低层次上的真正区别是什么?
另外,它们是应该单独使用,还是一起使用,或者什么时候使用哪一个更好?
发布于 2013-01-17 06:22:43
clone()的东西,也就是说,当现有object.serialize()/deserialize时,它用于立即创建(函数式)新对象,也就是说,它用于将对象转换为一种可以持久存储并在以后恢复的形式,可能是在其他时间重新启动程序时。正如你所看到的,它们在功能上不是很相似,并且绝对应该能够独立使用。
发布于 2013-01-17 06:22:54
虽然它们都创建了有问题的对象的副本,但它们的实现方式却截然不同。
协议实际上只是实现一组特定功能的承诺。对于NSCopying,它是-copyWithZone:;对于NSCoding,它是–initWithCoder:和-encodeWithCoder:。
NSCopying用于在内存中复制对象-另一个相同的对象。
NSCoding用于创建序列化表示形式-- NSData对象--或从这样的表示形式创建对象。
发布于 2013-01-17 06:22:58
NSCoding是关于将对象序列化到光盘的。
NSCopying是关于可复制的(在内存中)。
https://stackoverflow.com/questions/14368887
复制相似问题