判断iphone网络连接失败

案发现场:
用下面的网络监听失败了: 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];
}




原因已经找到:
 Reachability *hostReach = [Reachability reachabilityWithHostName:@"http://www.manmanzou.com/m"];//可以以多种形式初始化
由于iSO5引进新特新:

Automatic Reference Counting

内存的自动管理。这里的局部变量,在该最用范围内被自动释放。
判断网络的核心方法是:


    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];
    hostReach = [Reachability reachabilityWithHostName: MANMANZOU_SITE];
    [hostReach startNotifier];

其中hostReach必须能hold住。








 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值