我有一个TableView通过方法调用retrieveData
从服务器接收数据。
我使用可达性来测试用户是否连接了互联网。
如果是,则调用retrieveData
。
如果不是,我得到一个NSLog打印。
一切正常,但是..
即使有连接,该表也需要花费几秒钟的时间来加载,这不是我想要的。
我怎么能马上?
我在viewDidLoad方法中检查连接。
- (void)viewDidLoad
{
[super viewDidLoad];
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];
reach.reachableBlock = ^(Reachability*reach)
{
// Load the Table Content
[self retrieveData];
};
reach.unreachableBlock = ^(Reachability*reach)
{
NSLog(@"no internet");
};
[reach startNotifier];
}
最佳答案
即使Google网站“最有可能”不会失败,但从理论上讲,依靠主机名的可达性来确定连接性是一个坏主意。
一旦有了downloaded并导入了Reachbility.m
和Reachbility.h
文件
创建一个辅助函数:
-(BOOL)IsConnected{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus networkStatus = [reachability currentReachabilityStatus];
return !(networkStatus == NotReachable);
}
然后用
if([self IsConnected]){
[self retrieveData];
}
else{
//not connected to internet!
}
关于ios - 可达性iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23064457/