案发现场: 用下面的网络监听失败了: status老是0。郁闷了。 //处理连接改变后的情况 - (void) updateInterfaceWithReachability: (Reachability*) curReach { //对连接改变做出响应的处理动作。 printf("ddddd %d\n", status); self.status = [curReach currentReachabilityStatus]; printf("ddddd %d\n", status); } // 连接改变 - (void) reachabilityChanged: (NSNotification* )note { Reachability* curReach = [note object]; NSParameterAssert([curReach isKindOfClass: [Reachability class]]); [self updateInterfaceWithReachability: curReach]; } - (void) startNotificationCenter { //开启网络状况的监听 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; Reachability *hostReach = [Reachability reachabilityWithHostName:@"http://www.manmanzou.com/m"];//可以以多种形式初始化 [hostReach startNotifier]; //开始监听,会启动一个run loop [self updateInterfaceWithReachability: hostReach]; } 原因已经找到:
由于iSO5引进新特新:Reachability *hostReach = [Reachability reachabilityWithHostName:@"http://www.manmanzou.com/m"];//可以以多种形式初始化
Automatic Reference Counting
内存的自动管理。这里的局部变量,在该最用范围内被自动释放。
判断网络的核心方法是:
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
hostReach = [Reachability reachabilityWithHostName: MANMANZOU_SITE];
[hostReach startNotifier];
其中hostReach必须能hold住。
判断iphone网络连接失败
最新推荐文章于 2024-08-08 15:43:27 发布