我对我的应用有疑问。我的应用程序需要5-10秒才能从我的Web服务下载所有数据,也可以使用STTwitterAPI从Twitter下载,我在应用程序启动时下载所有这些内容。问题是:在这5-10秒内你会做什么?显示UIAlertView说该应用正在下载内容?将图像加载到UIImageView,下载数据后删除UIImageView(我不知道如何检查)?有没有Apple提供的方法来解决这个问题?
我只是考虑为UIImageview或NSAlertView设置NSTimer,问题是如果我不断向服务器添加数据,或者根据正在下载数据的用户的连接,可能UIImageView在所有之前就消失了数据已经下载。
什么是最好的解决方案? STTwitter是否有方法检查是否已下载所有数据?
答案 0 :(得分:0)
看看这个梦幻般的HUD显示单例框架:
SVProgressHUD by Sam Vermette,您只需将文件夹拖到xcode项目中即可。然后导入.h
文件,然后在任何地方显示你的消息,然后你可以开始显示一个抬头显示,这就是通过简单地调用单例类中的方法调用覆盖的方式,如[SVProgressHUD showWithStatus:@"Doing Stuff"];
。就这么简单!
然后下载名为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:{
}
}