目标C:无法获取网络状态值

时间:2011-06-08 02:13:43

标签: objective-c ios networking reachability

我正在尝试通过以下代码获取网络状态

//define in my .h file
NetworkStatus internetConnectionStatus;

//define in my .m file
self.internetConnectionStatus = [[Reachability reachabilityForInternetConnection]currentReachabilityStatus];

我得到了self.internetconnection status = <null>。我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

您应该将它的值与Reachability.h中定义的枚举值进行比较:

if(self.internetConnectionStatus == NotReachable)
{
    // no connection
} else if(self.internetConnectionStatus == ReachableViaWiFi)
{
    // WiFi connection
} else if(self.internetConnectionStatus == ReachableViaWWAN)
{
    // 3G connection
}

此外,如果您使用@property (nonatomic, assign)来获取/设置它,请确保您的NetworkStatus在标题中有self.

在我看来,假设您正在使用Apple Reachability样本,它并不是特别精致,在某些情况下可能会给出错误的价值。要获得更强大的版本,请使用ASIHTTPRequest库附带的版本或其基于的版本,该版本可供下载here并在this博文中详细说明