首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSData与Archiving

NSData与Archiving
EN

Stack Overflow用户
提问于 2014-04-13 19:50:09
回答 1查看 393关注 0票数 2

我想我只是不知道区别是什么,因为我不理解“黑匣子”,但是使用这两种方法有什么区别呢?

我应该什么时候使用

代码语言:javascript
复制
NSData
writeToFile: atomically:

我应该在什么时候使用

代码语言:javascript
复制
[NSKeyedArchiver archiveRootObject: toFile:]

使用每一种方法的利弊是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-13 20:05:56

这两个API所做的事情是不同的:

  • NSData将“原始”字节写入文件。您可以通过假设读回的字节位于正确的位置来恢复这些字节后面的结构。在某种意义上,这类似于将曲奇切割器应用到具有某种结构的块上,期望正确的块出现在正确的位置。这种方法的一个直接后果是,数据无法经受代码的更改--如果您读取数据的结构确实发生了更改,则在更改之前保存的数据将导致错误。
  • NSKeyedArchiver保存对象的结构及其数据。这就导致了稍微大一点的档案,但结构变得更加健壮,在对底层数据的更改中幸存下来。

如果您需要保存一个简单的非结构化数据,您可以使用任何一个。如果您要保存的数据具有结构,则更喜欢NSKeyedArchiver,特别是如果您希望在将来保持一定的灵活性。

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

https://stackoverflow.com/questions/23047638

复制
相关文章

相似问题

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