【发布时间】:2019-04-03 10:01:38
【问题描述】:
我正在开发一个需要将数据保存到文件中的 iOS 应用。我选择了基于文档的应用程序,确切地说是基于UIDocumentBrowserViewController 的应用程序,这样我就可以轻松地从系统的文件应用程序保存和加载文件。
由于我需要在文件上保存/加载的数据非常复杂:不同对象的大层次结构,包括元数据、图像文件等。我想知道未来使用的最佳技术是什么。
我遇到了NSFileWrapper,它能够将不同的文件保存为一个。我绝对可以使用它。但我也看到了UIManagedDocument 以及在我的项目中使用 Core Data 的能力,同时可能保存了 Core Data 数据库的内容(我知道它不完全是一个数据库,但你知道我的意思)放入我可以在 File App 中某处写入的文件中。
这是我可以预料到的行为吗?
重新表述:我想知道我是否可以通过 UIDocumentBrowserViewController 读取/写入文件,并使用与 Core Data 一起使用的 UIManagedDocument 描述的数据。
提前谢谢你。 ????
【问题讨论】:
-
这是一个宽泛的问题。 UIManagedDocument 已经自己使用 coredata,而且由于它们是 UIDocuments,所以可以通过 UIDocumentBrowserViewController 访问它们...
-
这周我一直在玩这个课程。我的发现是它有效并且会做你想做的事。然而,这两种技术之间的界限在哪里并不容易看出。例如,直接保存文档的上下文将发布
NSManagedObjectContextDidSave通知,但这不会保存文档,而是将其标记为hasChanges以供下一次保存。文档保存后,您将收到文档状态更改的通知以及另一个 contextDidSave 通知。这可能会导致不必要的重绘。需要的话私信我。
标签: ios swift core-data nsfilemanager uidocument