我们怎么知道iphone从互联网上获取信息?

时间:2009-10-19 06:55:41

标签: iphone

我想在从互联网上搜索时显示活动指示符。但是怎么能 我知道iphone已经从互联网上得到了响应以停止动画活动指示器? 有什么方法吗?

2 个答案:

答案 0 :(得分:0)

查看NSURLConnection的委托方法。特别是connection:didReceiveResponse:connectionDidFinishLoading:

connection:didReceiveResponse:委托方法下,您可以显示网络活动指示符,如下所示:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
    //...
}

然后将其隐藏在connection:DidFinishLoading:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
//...
}

如果连接尝试失败,您还应该在connection:didFailWithError:中隐藏它。

答案 1 :(得分:0)

为了解决这个问题,我创建了一个单例连接管理器类,它将完成设置和发送url连接的工作。它基本上通过自身路由连接,拦截委托调用。它将每个url连接保留在一个数组中,并使用连接字典>传回委托调用。委派。

当它收到url的委托调用时,它会向连接的“真正”委托发送消息,并从数组和字典中删除连接。

这样,您始终可以知道是否打开了连接(因为连接数组不为空)并且可以显示指示符。通过这种方式,您可以发送许多连接,并且仍然保证在连接时始终显示指示符,并且在没有连接时从不显示指示符。

我的实现可以在Bitbucket上找到,它使用我自己的NSURLConnection子类,为每个连接添加唯一键。