是否可以创建许多UIDocument实例?

时间:2014-06-25 17:06:35

标签: ios cocoa-touch uidocument

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是否有开销,即使它没有打开?如果我希望我的文件选择器监听iCloud冲突(这需要一个UIDocument实例)怎么办?

如果我可以将UIDocument实例存储在我的文件列表中,用于处理iCloud冲突,以及用户在文档打开时更改文档名称,那将更加优雅。

1 个答案:

答案 0 :(得分:1)

  

为什么使用此FileRepresentation对象而不是仅创建一个   UIDocuments列表?

理论上你可以使用UIDocument。他们不在文档中的原因是UIDocument的子类可以以内存密集的方式实现。创建一个只管理名称和URL的对象是确保低内存使用量的简单方法,直到您需要UIDocument类的其余部分为止。