NSBinaryStoreType有哪些优点?

时间:2013-05-17 14:13:26

标签: ios cocoa-touch core-data

NSPersistentStoreCoordinator有四种商店类型:NSSQLiteStoreTypeNSXMLStoreTypeNSBinaryStoreTypeNSInMemoryStoreType。我理解XML存储可以方便调试,或者在需要易失性缓存时在内存中。

使用二进制存储类型有哪些真正的优势?

1 个答案:

答案 0 :(得分:13)

NSBinaryStoreType将占用最少的磁盘空间,并将加载最快的原子商店类型。

原子商店类型一次加载文档中的每个Core Data对象,因此一旦加载了文档,它就全部在内存中,直到你点击save:之后才会再次点击磁盘。 NSSQLiteStoreType将占用类似二进制的磁盘空间,加载速度极快并且可以存在于任意有限的内存中,但只要应用程序打开文档文件就需要在磁盘上可用 - 它不能在您使用它时,被其他应用程序删除或覆盖,原子类型将容忍。 SQL存储类型也有一些限制为laid out here - 通常原子存储类型的执行速度要快得多,并且会以不断增加的内存占用为代价提供更多功能。

NSBinaryStoreType绝不是最有效的原子商店类型可能,它不会以任何方式压缩。您可以编写自己的gzip压缩XML或JSON存储类型,它可能占用比NSSQLiteStoreTypeNSBinaryStoreType更少的磁盘空间,但代价是加载/保存速度。