sto*_*yhk 8 iphone objective-c
我搜索过但看不到类似的问题.
我已经添加了一种方法来检查每个Reachability示例的互联网连接.它大部分时间都可以工作,但是当安装在iPhone上时,即使我有互联网连接也经常会失败(只有在3G/EDGE上才能使用 - WiFi可以).
基本上下面的代码返回NO.
如果我切换到另一个应用程序,例如Mail或Safari,然后连接,然后切换回应用程序,然后代码显示可以访问互联网.有点似乎需要'轻推'.
有人见过这个吗?有任何想法吗?
非常感谢詹姆斯
+ (BOOL) doWeHaveInternetConnection{
BOOL success;
// google should always be up right?!
const char *host_name = [@"google.com" cStringUsingEncoding:NSASCIIStringEncoding];
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL,
host_name);
SCNetworkReachabilityFlags flags;
success = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isAvailable = success && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
if (isAvailable) {
NSLog(@"Google is reachable: %d", flags);
}else{
NSLog(@"Google is unreachable");
}
return isAvailable;
Run Code Online (Sandbox Code Playgroud)
}
看起来你已经从Apple示例代码中删除了一些基本的可访问性代码.当你完好无损地执行此操作时会发生什么?
Reachability *hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
NetworkStatus netStatus = [hostReach currentReachabilityStatus];
if (netStatus == NotReachable)
{
NSLog(@"NotReachable");
}
if (netStatus == ReachableViaWiFi)
{
NSLog(@"ReachableViaWiFi");
}
if (netStatus == ReachableViaWWAN)
{
NSLog(@"ReachableViaWWAN");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7040 次 |
| 最近记录: |