Apple的iOS版基于文档的应用程序编程指南显示了示例代码,该示例代码构建FileRepresentation对象列表以显示文档索引。最初没有创建UIDocument实例。然后,在打开文档时,将创建UIDocument子类实例。指南对此设计的评价最多的是:
现在,示例应用程序具有一个自定义模型对象数组(_fileList),该数组封装了每个应用程序文档的名称和文件URL。 (FileRepresentation是这些对象的自定义类。)
见https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/DocumentBasedAppPGiOS/ManageDocumentLifeCycle/ManageDocumentLifeCycle.html#//apple_ref/doc/uid/TP40011149-CH4-SW8
为什么使用此FileRepresentation对象而不是仅创建UIDocuments列表?即使UIDocument没有打开,创建UIDocument也有开销吗?如果我希望我的文件选择器侦听iCloud冲突(这需要UIDocument实例)怎么办?
如果仅将UIDocument实例存储在我的文件列表中(这既可以处理iCloud冲突,又可以在用户打开文档时更改文档名称的情况下),那将更加优雅。
最佳答案
为什么使用此FileRepresentation对象而不是仅创建一个
UIDocuments列表?
理论上,您可以使用UIDocument
。它们之所以不在文档中,是因为UIDocument
的子类可以以占用大量内存的方式实现。创建一个仅管理名称和URL的对象是一种确保内存使用率低的简单方法,直到需要其余的UIDocument
类。
关于ios - 可以创建许多UIDocument实例吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24414657/