0

我有一个 iphone 应用程序,它有一个视图,需要从各种互联网站点获取大量数据。因此,它加载所需的时间量是不可接受的。我想知道是否有任何方法可以在“applicationDidFinishLaunching”方法期间加载视图,因此延迟是在应用程序启动时而不是在导航中途。

非常感谢你!

4

3 回答 3

1

您希望尽快加载视图,然后启动后台线程或异步请求来拉取数据。

不建议在初始加载期间让您的应用程序休眠。我相信 SpringBoard 将终止任何需要超过 30 秒才能完成加载的应用程序。

让应用程序在没有给用户可见反馈的情况下执行某些操作是一种糟糕的用户体验(例如动画 UIActivityView)

于 2010-08-16T20:48:24.547 回答
0

您是否已经考虑过异步加载数据?加载时,UI 不会被阻止。例如,当您的应用程序加载数据时,您可以显示一个不错的加载轮。这就是所有优秀应用程序的做法。

于 2010-08-16T17:00:08.393 回答
0

如果初始视图有一个与“数据”视图不同的 viewController,则可以向 appDelegate 添加对 dataView 的引用,然后执行以下操作:

if (self.curAccountManager == nil) {
    self.curAccountManager = [[accountManagerController alloc] initWithNibName:@"accountManager" bundle:[NSBundle mainBundle]];
    if (![self.curAccountManager isViewLoaded]) {
        UIView *tmpView = self.curAccountManager.view;
        tmpView = nil;
    }   



}

这将加载视图。但是如果它正在做大量的加载,当用户切换到它时,它可能不会很好地响应。我建议您按照上面的建议,在您的数据视图中异步加载数据,这样您至少可以显示用户状态或部分结果。

于 2010-08-16T19:13:42.833 回答