判斷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住。








 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章