我正在使用Reachability类来监控几个iPhone应用程序中的网络连接和服务器可用性。我的AppDelegate中有以下代码:
// Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the
// method "reachabilityChanged" will be called.
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
// Start checking for reachability to myWebService.com
//Change the host name here to change the server your monitoring
hostReach = [Reachability reachabilityWithHostName: @"myWebService.com"];
[hostReach startNotifier];
internetReach = [Reachability reachabilityForInternetConnection];
[internetReach startNotifier];
wifiReach = [Reachability reachabilityForLocalWiFi];
[wifiReach startNotifier];
当我使用Instruments对其中一个应用程序(我的公司博客的专用博客阅读器)进行概要分析时,我发现在打开通知程序时,在一分钟内,网络流量的差异为+5.9 Mb,而不是评论这些行进行。
在向服务器发送请求之前检查网络连接的正确方法是什么?我可能不应该全时监视连接,但只有在我需要知道的时候。
我的其他应用与网络服务API进行通信以发布网页和视频,我想知道在尝试发布之前是否有与该服务的连接,但我希望尽可能减少网络流量。
我猜这是苹果在批准/拒绝应用商店中的应用时所寻求的一件事。
答案 0 :(得分:1)
不要在发出请求之前检查连接,只需在发出请求时检查网络连接错误。如果要更新网络状态,可以定期发出请求。