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

Zhe*_*hen 1 networking objective-c reachability ios

我试图通过以下代码获取网络状态

//define in my .h file
NetworkStatus internetConnectionStatus;

//define in my .m file
self.internetConnectionStatus = [[Reachability reachabilityForInternetConnection]currentReachabilityStatus];
Run Code Online (Sandbox Code Playgroud)

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

dar*_*s0n 5

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

if(self.internetConnectionStatus == NotReachable)
{
    // no connection
} else if(self.internetConnectionStatus == ReachableViaWiFi)
{
    // WiFi connection
} else if(self.internetConnectionStatus == ReachableViaWWAN)
{
    // 3G connection
}
Run Code Online (Sandbox Code Playgroud)

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

在我看来,假设您正在使用Apple Reachability样本,它并没有特别精炼,在某些情况下可能会给出错误的价值.对于更强大的版本,请使用随ASIHTTPRequest库提供的版本或其所基于的版本,可在此处下载并在博客文章中详细介绍.