【发布时间】:2017-07-27 16:13:26
【问题描述】:
我想创建一个使用
的应用程序- 斯威夫特
- 核心数据
- 以标准 macOS 方式工作的“文档”[自定义扩展,包含与该文档相关的所有数据的单个“文件”/文件包装器]
这似乎是不可能的。文档非常清楚地指出
NSPersistentDocument 不支持某些文档行为: 文件包装器。 [..]
这让我想到了在 CoreData 中处理图像的常用方法 - 带有“允许外部存储”的二进制数据并将它们保存到不同的位置,将 URL 存储在数据库中 - 不能与 NSPersistentDocument 一起使用。我希望我的用户能够对我的“文件”执行通常的 Finder 操作(复制、移动到外部存储、从外部备份恢复)并且需要将我的所有数据放在一个包中。
文件存储的 SQL 版本在保存时会产生通常的三倍堆栈 - .sqlite、.sqlite-shm、.sqlite-wal - 作为“文档”是无用的。
有没有我忽略的解决方案? (示例非常少;Big Nerd Ranch sample 也没有解决这个问题;Marcus Zarra 和 Objc.io 都没有涉及 NSPersistentDocument)。
【问题讨论】:
标签: macos core-data nspersistentdocument