iPhone enumerateGroupsWithTypes整理选择器

时间:2010-07-07 14:22:19

标签: iphone

我正在使用

[assetsLibrary enumerateGroupsWithTypes:groupTypes usingBlock:listGroupBlock failureBlock:failureBlock];

枚举相册。

枚举器以“异步”方式运行,换句话说,方法在枚举所有项之前返回。

如何知道枚举何时结束?

我正在使用组填充NSMutableArray,并在枚举完成后调用[myTableView reloadData]

2 个答案:

答案 0 :(得分:10)

您的枚举将为您的块提供一个nil-pointer组,并在它通过最后一次传递时将stop设置为true。您可以使用它来设置标志或使用performSelectorOnMainThread:在下一次通过RunLoop时调用一些完成代码。

答案 1 :(得分:0)

我为此查看了API,因为我一开始认为答案是使用一些同步方法来做同样的事情。由于没有这样的方法,我怀疑由于一些实现细节,枚举器不提前知道它有多少项。另外,它可能很慢。

在这种情况下,我会在枚举运行时重新加载表,小心不要阻塞主线程或枚举线程。这是我会尝试的:

执行枚举,将新项目存储在数组中以便在表格中显示。每隔X秒(0.1可能?),将新项添加到用作表的数据源的数组中,然后重新加载它。一定要使用performSelectorOnMainThread:添加到表的数组或重新加载其数据。将这些项添加到表的数组后,将添加到表数组中的新数组项。

这种方法将为用户带来好处,即表格将立即开始加载,即使实际需要一段时间来加载所有内容。