我正在使用NSUrlConnection从服务器访问数据。 我希望在从服务器获取数据期间停止用户交互以及代码执行。
我在Stack Overflow或Google上阅读的内容越来越多,但我找不到合适的解决方案。
请参阅我正在使用的代码。
当用户第一次点击从服务器访问数据时,我启动活动指示器。
[activity startAnimating];
NSString *post =
[[NSString alloc] initWithFormat:@"Email=%@&Pass=%@",Email,pass];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
NSURL *url = [NSURL URLWithString:@"http://server.in/LoginStatus.php"];
NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
[theRequest setHTTPMethod:@"POST"];
[theRequest setValue:postLength forHTTPHeaderField:@"Content-Length"];
[theRequest setHTTPBody:postData];
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
if( theConnection )
{
webData = [[NSMutableData data] retain];
}
else
{
}
并在connectionDidFinishLoading
函数中停止活动指示器。
问题是,当我检查返回的数据时,它会显示以前的结果。再次单击时,它会显示正确的结果。
如果您有任何想法,请建议。
答案 0 :(得分:0)
尝试在不同的线程中运行UIActivityIndicator和NSURLConnection。我遇到的问题是当Connection处于活动状态时指示器没有出现。将两者放在单独的线程中解决了它。
答案 1 :(得分:0)
只需使用 [活动开始动画]; 在你的方法
现在尝试在某个线程中创建NSURL连接。并从您的方法调用线程 一旦连接得到完成使用 [活动停止动画];
一定会有效吗