在发射时加载plist需要很长时间。如何显示活动指标?

时间:2012-01-14 20:32:56

标签: iphone ios xcode

我的应用程序正在启动时加载在线plist,需要在tableview中显示将显示的数据。根据互联网连接,加载plist可能需要相当长的时间(4-5秒),并且整个时间都会显示启动屏幕。现在,我想在状态栏中放置一个活动指示器(当启动屏幕仍在运行时),以便用户知道应用程序正忙于加载。

我正在加载plist并在ViewDidLoad中创建数组等,我不确定如何实现我上面描绘的内容。

你对这件事有什么看法吗?感谢。

1 个答案:

答案 0 :(得分:2)

如果我是你,我会重新考虑你的方法。除非您特别采取措施避免它,否则在applicationDidFinishLaunching:返回之前,可能会调用下载plist的代码。这不好,因为如果需要很长时间,看门狗可能会在实际正确启动之前杀死你的应用程序。不是一件好事。

你应该真的在后台线程中开始下载,并在实际视图中粘贴一个微调器。所以像这样:

- (void)viewDidLoad {
    ...

    UIActivityIndicatorView *spinner = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge];
    spinner.center = CGPointMake(self.view.bounds.size.width / 2.0f, self.view.bounds.size.height / 2.0f);
    [spinner startAnimating];
    [self.view addSubview:spinner];

    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        // Do your downloading of your plist, etc
        dispatch_async(dispatch_get_main_queue(), ^{
            [spinner removeFromSuperview];
        });
    });
}