我正在开发一个iOS应用,该应用需要将数据保存到文件中。我选择去一个基于文档的应用程序,正是基于Hello
的应用程序,以便我可以轻松地从系统的 Files应用程序中保存和加载文件。
由于我需要保存/加载到文件上的数据非常复杂:不同对象的大层次结构,元数据,图像文件等。我想知道今后使用的最佳技术是什么。
我遇到了UIDocumentBrowserViewController
及其将不同文件保存为一个文件的功能。我绝对可以使用它。但是我还看到了NSFileWrapper
以及在项目中使用 Core Data 的功能,同时还可以保存Core Data数据库的内容(我知道它不是一个数据库,但是您知道我意思是)到可以写在 File App 中的某个文件中。
这是我可以期待的行为吗?
重新制定格式:我想知道我是否可以通过UIManagedDocument
读取/写入文件,并使用与核心数据配合使用的UIDocumentBrowserViewController
描述的数据。
先谢谢您。
答案 0 :(得分:1)
您已经发现,UIManagedDocument可以满足您的应用需求。它确实具有write和read 其他内容的方法,例如文档包中的元数据或图像文件。
话虽如此,我从未使用过UIManagedDocument,也从未见过其他人使用过它。快速搜索GitHub只能找到这个one project,只有两个贡献者在2013年为它写了一个包装器。而且,似乎没有来自Apple的任何示例代码,而writeAdditionalContent(_:to:originalContentsURL:)中的注释iCloud不支持其他内容的文档让我有些担心,但这也许是Core Data团队知道划清界限的好兆头。
我使用了UIManagedDocument的macOS对应物NSPersistentDocument。类似的情况是,它的使用率不高,但存在许多已知的技术问题。因此,几年前,我改用了BSManagedDocument,据说它模仿了UIManagedDocument以支持Core Data的所有现代功能。我对BSManagedDocument很满意。
总而言之,如果我遇到您的情况,是的,我会尝试UIManagedDocument。但是,如果在开发过程中需要使用DTS support incident或两个,请不要感到惊讶。