NSPersistentStoreCoordinator
有四种商店类型:NSSQLiteStoreType
,NSXMLStoreType
,NSBinaryStoreType
和NSInMemoryStoreType
。我理解XML存储可以方便调试,或者在需要易失性缓存时在内存中。
使用二进制存储类型有哪些真正的优势?
答案 0 :(得分:13)
NSBinaryStoreType
将占用最少的磁盘空间,并将加载最快的原子商店类型。
原子商店类型一次加载文档中的每个Core Data对象,因此一旦加载了文档,它就全部在内存中,直到你点击save:
之后才会再次点击磁盘。 NSSQLiteStoreType
将占用类似二进制的磁盘空间,加载速度极快并且可以存在于任意有限的内存中,但只要应用程序打开文档文件就需要在磁盘上可用 - 它不能在您使用它时,被其他应用程序删除或覆盖,原子类型将容忍。 SQL存储类型也有一些限制为laid out here - 通常原子存储类型的执行速度要快得多,并且会以不断增加的内存占用为代价提供更多功能。
NSBinaryStoreType
绝不是最有效的原子商店类型可能,它不会以任何方式压缩。您可以编写自己的gzip压缩XML或JSON存储类型,它可能占用比NSSQLiteStoreType
或NSBinaryStoreType
更少的磁盘空间,但代价是加载/保存速度。