我有一个 OS X 应用程序,它依赖 NSPersistentDocument 和 Core Data 来处理应用程序的自定义文件类型(保存为 XML)。
我注意到,当我更新我的核心数据模型(我正在做简单的更改,依赖于轻量级迁移)时,只需使用使用新模型的应用程序打开一个文件就会更改磁盘上的文件。原始文件的备份版本也出现在磁盘上(文件名后附有“~”)。一旦发生这种情况,应用程序的先前(已发布)版本就无法打开该文件。
需要明确的是:我只是打开文件。我没有将文件保存回磁盘。我可以在 Finder 中观看,并在打开文件后立即看到“~”。
这似乎是非常危险的行为。我必须非常谨慎,永远不要打开我的用户群当前正在使用的文件,因为这样做会立即使他们无法访问。
这是默认的 OS X 行为吗?有没有办法配置 NSPersistentDocument 或我的核心数据模型,以便打开文件将内部存储更改为应用程序,但除非我明确保存,否则更改不会传播回磁盘?