我想创建一个使用使用NSPersistentDocument打造“文档”
- 斯威夫特
- CoreData
- “文件”的工作,在标准的MacOS时尚[自定义扩展,单一的“一个应用程序文件'/ filewrapper包含所有与该文件相关的数据]
这似乎不可能。该文档非常清楚地指出:
NSPersistentDocument不支持某些文档行为: 文件包装。 [..]
这让我觉得与图像处理CoreData的常用方法 - 二进制数据与“允许外部存储”和它们保存到不同的位置,该URL存储在数据库中 - 不能与NSPersistentDocument一起使用。我希望我的用户能够对我的'文件'执行通常的Finder操作(复制,移动到外部存储,从外部备份恢复),并且需要我的所有数据都集中在一个包中。
当保存 - .sqlite,.sqlite-shm,.sqlite-wal时,文件存储的SQL版本会导致通常的三重堆栈,这是无用的'文档'。
有没有我忽略的解决方案? (例子非常稀疏; Big Nerd Ranch sample也没有解决这个问题; Marcus Zarra和Objc.io都没有涉及到NSPersistentDocument)。
如何在filewrapper中创建单独的CoreData存储(sql)?链接的例子提出了一个单一的CoreData存储所有信息,单个文档使用不同类型的存储(plist等) - 而我真的在寻找一个使用CoreData的“文档”。 –
你也可以在NSDocument范围内实例化一个Core Data堆栈,并将SQLite,XML或二进制文件保存在文档中。 – Ely