如何检测我在iOS上使用互联网?

时间:2016-05-10 19:47:18

标签: ios objective-c

首先,我不是要求互联网可达性 我的应用程序在不同的地方有很多互联网请求。我想在状态栏上显示ActivityIndi​​cator,但我不想设置

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES/NO

每一次 有没有办法可以检测到我的应用程序正在使用互联网?(钩子方法或其他什么?)
非常感谢!

2 个答案:

答案 0 :(得分:1)

可悲的是 - 除非我落后于时代,否则你有责任追踪这一点;飞行中的网络通信数量没有吸气剂,也没有通知或对象可以观察到变化。

假设您刚刚使用NSURLSession,您可以实现一个函数YAURLCompletionForCompletion,该函数将void (^)(NSURL *location, NSURLResponse *response, NSError *error)形式的块作为参数,并递增全局活动计数并返回另一个调用原件然后递减计数器的相同形式的块。

只要计数器非零,就显示微调器。始终使用YAURLCompletionForCompletion来包装您在创建NSURLSessionDataTask时传递的任何完成处理程序。

答案 1 :(得分:0)

如果您使用AFNetworking,那么AFNetworkActivityIndicatorManager是一个不错的选择。你可以实现类似的功能。