首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSCoding VS NSCopying

NSCoding VS NSCopying
EN

Stack Overflow用户
提问于 2013-01-17 06:15:38
回答 3查看 2.3K关注 0票数 1

NSCoding和NSCopying在低层次上的真正区别是什么?

另外,它们是应该单独使用,还是一起使用,或者什么时候使用哪一个更好?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-01-17 06:22:43

  • NSCopying最接近于在其他语言中被称为clone()的东西,也就是说,当现有object.
  • NSCoding的副本最接近serialize()/deserialize时,它用于立即创建(函数式)新对象,也就是说,它用于将对象转换为一种可以持久存储并在以后恢复的形式,可能是在其他时间重新启动程序时。

正如你所看到的,它们在功能上不是很相似,并且绝对应该能够独立使用。

票数 9
EN

Stack Overflow用户

发布于 2013-01-17 06:22:54

虽然它们都创建了有问题的对象的副本,但它们的实现方式却截然不同。

协议实际上只是实现一组特定功能的承诺。对于NSCopying,它是-copyWithZone:;对于NSCoding,它是–initWithCoder:-encodeWithCoder:

NSCopying用于在内存中复制对象-另一个相同的对象。

NSCoding用于创建序列化表示形式-- NSData对象--或从这样的表示形式创建对象。

票数 2
EN

Stack Overflow用户

发布于 2013-01-17 06:22:58

NSCoding是关于将对象序列化到光盘的。

NSCopying是关于可复制的(在内存中)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14368887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档