2013-05-17 97 views
9

NSPersistentStoreCoordinator有四种商店类型:NSSQLiteStoreType,NSXMLStoreType,NSBinaryStoreTypeNSInMemoryStoreType。我知道XML存储可以方便地进行调试,或者在需要易失性缓存时在内存中。NSBinaryStoreType的优点是什么?

使用二进制存储类型的真正优点是什么?

回答

13

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

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

NSBinaryStoreType绝不是最有效的原子存储类型可能,它没有以任何方式压缩。您可以编写自己的gzipped XML或JSON存储类型,这可能会占用磁盘空间少于NSSQLiteStoreTypeNSBinaryStoreType的负载/存储速度。