当前位置:  开发笔记 > 编程语言 > 正文

NSPersistentDocument的数据存储何时移动到最终保存位置?

如何解决《NSPersistentDocument的数据存储何时移动到最终保存位置?》经验,为你挑选了0个好方法。

按照核心数据编程指南的核心数据性能页面中 关于BLOB存储的建议,我选择在我的NSPersistenDocument-based应用程序中存储二进制数据 (仅限Leopard,如果这有所不同)在外部文件中(与文档Core分开)数据数据存储)并NDAlias在文档的数据存储中保存对该文件的存档引用.

最后,我希望外部数据文件最终与文档(数据存储)文件位于同一目录中.由于我可能需要在保存文档之前将数据写入外部数据文件(这是一个科学数据采集应用程序,如果可能,应避免因崩溃而丢失数据),我采取了以下方法:

我想在模型相关的类中封装这个外部文件的管理,因为在模式迁移期间我需要相同的功能.因此,在我的NSPersistentDocument's子类中管理外部数据文件 似乎是错误的.

在对象模型的根对象中,我NSTemporaryDirectory()在根对象awakeFromInsert方法中创建外部文件 并存储NDAlias引用数据文件.

然后,我想在保存发生时将外部数据文件移动到与保存的数据存储相同的目录.

我认为didSave这是适当的地方,但看起来在调用didSave方法时,持久存储仍然在临时目录中(大概是FSExchangeObjects'd在创建原子保存操作之前).

我打算因素的逻辑awakeFromInsertdidSave成类的方法,使他们可以架构迁移过程中的自定义实体政策的呼吁 createDestinationInstancesForSourceInstance:entityMapping:manager:error: and endInstanceCreationForEntityMapping:manager:error:分别.

所以,我的问题是:在NSPersistentDocument保存期间,我可以放心,我的根对象objectID.persistentStore.URL是保存的"最终"URL(例如,用户选择保存文件以进行文档保存)?

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有