我想我只是不知道区别是什么,因为我不理解“黑匣子”,但是使用这两种方法有什么区别呢?
我应该什么时候使用
NSData
writeToFile: atomically:我应该在什么时候使用
[NSKeyedArchiver archiveRootObject: toFile:]使用每一种方法的利弊是什么?
发布于 2014-04-13 20:05:56
这两个API所做的事情是不同的:
NSData将“原始”字节写入文件。您可以通过假设读回的字节位于正确的位置来恢复这些字节后面的结构。在某种意义上,这类似于将曲奇切割器应用到具有某种结构的块上,期望正确的块出现在正确的位置。这种方法的一个直接后果是,数据无法经受代码的更改--如果您读取数据的结构确实发生了更改,则在更改之前保存的数据将导致错误。NSKeyedArchiver保存对象的结构及其数据。这就导致了稍微大一点的档案,但结构变得更加健壮,在对底层数据的更改中幸存下来。如果您需要保存一个简单的非结构化数据,您可以使用任何一个。如果您要保存的数据具有结构,则更喜欢NSKeyedArchiver,特别是如果您希望在将来保持一定的灵活性。
https://stackoverflow.com/questions/23047638
复制相似问题