对于具有元数据的大型文档,uiddocument是一种合适的策略吗?



我正在考虑使用UIDocument en NSFileWrapper来存储包含相当多的大型视频文件和一些小文本文件的"项目"。我遇到了一些问题,我开始怀疑uiddocument是否仍然是正确的策略。

据我所知,NSFileWrapper在内存中加载所有东西。在处理大型视频文件时,这可能是一个问题。我认为有可能通过使用放弃标准NSFileWrapper的自定义保存和加载方法来解决这个问题。

我想显示所有文档的列表以及一些元数据。例如,这可以包括预览图像、录制场景的数量、视频的长度等。现在获取这些数据的唯一方法是打开每个文档并检索它。可能相当慢,特别是对于大型文档。

解决方案?

我现在看到了两种解决方案:完全抛弃uiddocument,采用自定义架构,或者使用某种集中的元数据文件。后者的缺点是我必须在两个不同的地方管理元数据,并且我需要手动保持它们同步。

uiddocument仍然是解决这些问题的方法吗?如果是,有什么方法可以解决这些问题?

根据这些评论,提问者找到了一个继续前进的方法:

删除uiddocument以支持Core Data解决方案。我现在保存我所有的使用Core data和手动管理上的大文件文件系统。这对我来说很有效,我很高兴我做了开关。我唯一不得不放弃的是简单的iCloud同步。但对于这么大的文件,这是不可行的。它似乎您可以创建自己的文件包装类来解决一些问题大文件的性能问题。

最新更新