在iOS中检查网络连接的正确方法

时间:2011-11-10 23:56:32

标签: ios ios4 ios5

我正在使用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进行通信以发布网页和视频,我想知道在尝试发布之前是否有与该服务的连接,但我希望尽可能减少网络流量。

我猜这是苹果在批准/拒绝应用商店中的应用时所寻求的一件事。

1 个答案:

答案 0 :(得分:1)

不要在发出请求之前检查连接,只需在发出请求时检查网络连接错误。如果要更新网络状态,可以定期发出请求。