Macos NSXMLStoreType或NSSqliteStoreType

Macos NSXMLStoreType或NSSqliteStoreType,macos,cocoa,core-data,persistent-storage,Macos,Cocoa,Core Data,Persistent Storage,我只是想知道,对于核心数据持久化类型,在NSXMLStoreType和NSSqliteStoreType之间进行选择时,是否有任何优点和缺点,例如性能 我四处搜索,只发现iOS不支持NSXMLStoreType。OS X不支持吗?这对我来说是新闻(对我使用该类型进行开发的应用程序来说也是新闻) NSXMLStoreType对于开发非常有用,因为您实际上可以使用文本编辑器(XML==人类可读)查看持久性存储,而SQLite或二进制存储类型则不然。然而,SQLite是最快的,因为它支持原子更新(只需

我只是想知道,对于核心数据持久化类型,在NSXMLStoreType和NSSqliteStoreType之间进行选择时,是否有任何优点和缺点,例如性能


我四处搜索,只发现iOS不支持NSXMLStoreType。

OS X不支持吗?这对我来说是新闻(对我使用该类型进行开发的应用程序来说也是新闻)

NSXMLStoreType对于开发非常有用,因为您实际上可以使用文本编辑器(XML==人类可读)查看持久性存储,而SQLite或二进制存储类型则不然。然而,SQLite是最快的,因为它支持原子更新(只需一点小小的更改,就可以更新单个记录,而无需将整个存储写回)。相比之下,XMLStoreType以这种速度换取可读性


我使用XML类型进行调试,但在部署的应用程序中使用SQLite。嗯,那些我仍然使用核心数据的,就是。CD不是适合所有东西的。事实上,当定制设计的系统工作正常时(尤其是在过滤或属性设置速度很重要的情况下),它对许多人来说都是一个不太合适的选择。

Ah。那就忽略这一部分吧。:-)我很好奇,除了核心数据,还有什么其他选择?您是直接使用sqlite还是其他数据库?围绕sqlite和其他数据库类型(包括现在所有孩子都在使用的许多类型的“对象数据库”;-)有很多第三方Objective-C包装器。或者,使用标准Cocoa类并将它们序列化为文件,作为自定义对象的PLIST或write NSCoder实现,以便在编写时可以序列化它们。“自定义文件格式”不是一个脏话。示例:您自己的通讯簿应用程序可能有一个完全由NSCoder兼容的Person对象的NSArray组成的模型。对[people writeTo…]的一个简单调用将把它序列化到所要求的文件中。非常感谢。非常有用的信息,我将阅读更多关于核心数据的信息,以便下次我可以选择正确的工具。谢谢,非常有用。