在 Iphone App 启动时,我启动了一个后台线程以从服务器接收一些数据。它允许用户浏览不同的视图。当我收到来自服务器的响应时,无论用户当前的视图如何,我都必须显示警报。如何做到这一点?我想我必须通知我对接收数据的所有看法?请指教....
问候
里兹万
不,会有一个类似 connectionDidReceiveResponse 或其他的方法,当你的后台线程接收到数据时会调用它。在该方法中显示此警报,它会在收到数据后立即出现。
听起来应该在你的 appDelegate 中。
无论视图层次结构如何,警报视图都将显示在任何其他视图之上。所以基本上你必须处理响应并显示一个 uialertview,它将显示在任何视图的顶部。相应地处理警报视图上的操作。不需要所有视图都可以获取此消息。只要你的主视图控制器/或对象在你的应用程序的整个生命周期中都是持久的就足够了。
在 connectionDidFinishLoading 委托方法中添加警报视图就足够了,如下所示,
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
UIAlertView *alertBox=[[UIAlertView alloc]initWithTitle:@"Got response" message:@"Loading completed." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertBox show];
[alertBox release];
}
因为 alertview 将出现在顶部(就像本地通知一样工作)。
但是您必须确保调用 Web 服务的类的实例和 NSUrlConnection 对象一直存在,直到连接完成加载。(未释放或解除分配)