0

我有一个应用程序,其中有很多我正在加载到核心数据数据库中的记录。实际加载是在一个名为“loadDBRecords”的模块中完成的。这个模块是从连接到“MainViewController.xib”的“MainViewController”调用的。

由于加载需要相当长的时间,我在加载过程中向 .xib 添加了一个 UIActivityIndi​​catorView。但是,我想使用 UIProgressView。当我看到这个时,我看不到任何使用它的方法,除非我将加载代码从“loadDBRecords”移动到“MainViewController”。

我的问题是:在我的设置中利用 UIProgressView 的最佳方式是什么?

4

1 回答 1

0

您可以在该-loadDBRecords方法中添加一个“progressHandler”块。为您加载的每条记录执行块,并在两者之间传回一个浮点值,0.01.0指示到目前为止的进度。然后该块可以将该值分配给进度条,或将其打印到控制台,或者您需要它执行的任何操作。(传统上,这将通过函数指针或委托/选择器组合来完成,但我发现块往往会让你的意图更清晰——或者至少更容易显示你的意图。)

- (void)loadDBRecords:(void (^)(CGFloat progress))progressHandler {
    NSUInteger count = /* number of records*/;
    for (NSUInteger i = 0; i < count; i++) {
        /* load the record */
        progressHandler((CGFloat)n / (CGFloat)count);
    }
}
于 2011-10-16T14:59:59.080 回答