0

在我的ViewDidLoad电话UIAlertView "Getting data. Please Wait...."中,NSTimer scheduledTimerWithTimeInterval 5 秒。在此之后,我创建了一个从 Web 服务器获取数据GetData的方法。NSURLConnection在我有didFailWithError另一个:NSURLConnectionUIAlertView

"Cannot connect to server. Please check your network settings". 

问题是我的第一个AlertView直接消失了,方法didFailWithError是拳头调用。没有 5 秒等待第一个警报。

感谢您的回复。

4

1 回答 1

0

没有代码很难回答您的问题,但您可以检查是否发生以下情况:
您显示已添加第一个警报(“请稍候”)的视图。然后你启动一个计时器。当计时器运行时,程序继续运行,并尝试从网络加载数据,但失败了。这会在第一个警报之上显示第二个警报,让第一个警报“消失”。
因此,问题可能是didFailWithError在计时器触发之前调用(我认为这会消除第一个警报,对吗?)。
我的建议是你再次检查你的应用程序的逻辑。我认为让用户知道他/她必须等待(第一个警报)是合理的,但是应该通过成功加载数据或尝试不成功来终止等待(即应该解除第一个警报) (didFailWithError)。
但是计时器是干什么用的?如果它在成功下载之前或期间触发怎么办(不成功的下载当然会使计时器无效)?

于 2013-04-26T18:46:48.650 回答