0

我有一堆不同大小(> 100)的文件存储在 iCloud 中。我有一个NSMetadataQuery返回这些文件的。它们NSMetadataQuery以随机顺序从对象报告给我的应用程序。

我打开它们并提取几个字符串,然后将它们排序并显示在UITableView.

我尝试了两种方法:A)加载每个文件,对文件信息数组进行排序,然后reloadData每次UITableView调用。B)等待所有文件加载完毕,然后对“完整”数组进行排序,然后调用reloadData一次。

选项 B 显然更好,但基本上用户看到结果所需的时间一样长。如何做到这一点最好?

我是否需要将我在其中显示的数据提取UITableView到不同的文件(即 PLIST)中,以便在后台加载实际数据时更快地加载并显示它?或者我是否需要通过跟踪 Array 然后调用reloadRowsAtIndexPaths:随后由于排序而更改的每一行来基本上扩展实现 A?

这种情况的最佳实践是什么?

谢谢

4

1 回答 1

0

从用户的角度来看,越快越好,看到一些东西,即使是不完整的,也比什么都看不到要好。所以:

  1. 如果您可以维护列出此信息的索引文件,请将其用于显示并仅下载您需要的内容(例如您的 Plist 想法,但可能存储在 iCloud 中,也可能存储在键/值存储中)
  2. 如果您必须下载文件信息,请向用户显示活动指示器,以便他们知道您仍在工作,并在获得项目时将项目添加到 UI(您的选项 A)

从 更改为reloadData可以reloadRowsAtIndexPaths:制作更好的动画,所以很高兴但不是必需的,并且不会使事情变得更快。

于 2014-03-11T11:37:30.853 回答