2014-01-21 90 views
0

我有一个怀疑与我的应用程序有关。我的应用程序需要5-10秒才能从我的web服务中下载所有数据,并使用STTwitterAPI从twitter下载,并在应用刚启动时下载所有这些内容。问题是:在这5-10秒内你会做什么?显示一个UIAlertView说应用程序正在下载内容?加载图像到UIImageView,并且一旦数据被下载删除UIImageView(我不知道如何检查)? Apple提供了哪些方法来解决这个问题?第一次启动时将内容下载到应用程序?

我只是想为UIImageview或NSAlertView设置一个NSTimer,问题是如果我不断向服务器添加数据,或者依赖于下载数据的用户连接,也许UIImageView会在之前消失所有的数据已经下载。

什么是最好的解决方案? STTwitter是否有检查所有数据是否被下载的方法?

+0

MBProgressHUD + AFNetworking。当AFNetworking告诉你下载完成时,在前面显示加载视图并解除它。 – KudoCC

+0

我将阅读关于这2个API的信息。非常感谢你! – iOSAddicted

+0

@KudoCC另一个问题将与STTwitterAPI。我正在使用它,我不知道该API是否包含一种方法来检查它是否已经完成下载内容... – iOSAddicted

回答

0

看一看这个梦幻般的HUD显示单框架:

SVProgressHUD by Sam Vermette,你要做的就是将文件夹拖放到Xcode项目。然后导入.h文件,然后你可以开始显示抬头显示,这是通过简单地调用单例类中的方法调用覆盖图,如[SVProgressHUD showWithStatus:@"Doing Stuff"];。就这么简单!

enter image description here

然后下载一个叫AFNetworking项目。 AFNetworking from github. 在AFNetworking中有一个选择器方法,您可以设置为您感兴趣的。因此,通过这个框架,您可以轻松建立与服务器的连接,下载数据并通过框架为您提供设置SUCCESS方法的选项,只要数据从服务器上完成下载,该方法就会调用您的成功方法。

以下是您的代码的样子。

-(void)startDownloadingData{ 
    [SVProgressHUD showWithStatus:@"Downloading data"]; 
    //add your AFNetworking connection here that downloads the data 
    //... 
    [serverRequest setDidFinishSelector:@selector(requestSucceeded:)]; 
    //... 
} 
-(void)requestSucceeded:(ASIHTTPRequest*)request{ 
switch (statusCode) { 
    case 400: 
    case 401: 
    { 

     [SVProgressHUD showErrorWithStatus:@"An error occurred"; 
     break; 
    } 
    case 200:{ 
     NSLog(@"Request Successful"); 
     [SVProgressHUD dismissWithSuccess:@"Done"]; 
    } 
    default:{ 
    } 
} 
+0

看起来非常酷,问题在于我还使用STTwitterAPI下载了我的Twitter的时间线。当STTwitterAPI的所有数据都被下载时,我怎样才能检查? – iOSAddicted

+0

那么你最终会做出多个连接请求,那很好,AFNetworking可以处理多个网络请求,并且只有当所有内容都被下载后,当你的每个网络请求都回来时,AFNetwork将逐个检测到,你会放心,所有已下载:) 我已经推动你在正确的方向现在你看看AFNetworking框架,保证它会有你所需要的。 – Pavan

+0

完美!我现在要尝试。 – iOSAddicted

相关问题