2011-07-04 56 views
-2

如果我在AppDelegate中实现NSURLConnection委托方法,并且我从application:didFinishLaunchingWithOptions调用它们,那么application:didFinishLaunchingWithOptions将在委托方法之前执行。NSURLConnection和URL下载问题

由于application:didFinishLaunchingWithOptions增加了导航控制器或标签栏控制器或任何视图到主窗口和显示,如果我需要NSURLConnection在第一个视图启动之前完成其下载,我会在哪里放置下面的方法?

self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 

基本上,我需要下载一个时间戳网上,并根据该时间戳,我将在清晰和重新下载我的核心数据的数据库,然后显示视图,否则我将只显示视图。这就是为什么我需要NSURLConnection在视图加载之前完成其执行。

有什么建议吗?

谢谢

回答

0

将低于线

- (void)connectionDidFinishLoading:(NSURLConnection *)connection{ 
    self.window.rootViewController = self.navigationController; 
    [self.window makeKeyAndVisible]; 
} 

直到你可以显示启动画面。 Default.png

+0

可怕的想法。如果用户在EDGE上运行,他们会认为该应用程序无响应。 – darksky

+0

顺便说一句,你可以通过获取进度条通过从didReceiveResponse委托方法获取内容大小来通知用户,所以这不是一个可怕的主意...... – iMOBDEV

+1

这只是建议你可以在加载数据时做任何事情。像显示加载指标,进度视图等你应该自己思考的东西。我们无法为您提供所有的东西.. – Deeps

1

我会在异步下载时显示我拥有的东西。关联的回调方法可以更新模型(数据库)。如果发生这种情况,更新视图。让用户坐下来等待下载内容并不好。

+0

不需要多线程? – darksky