簡體   English   中英

iPhone可達性問題

[英]iphone Reachability issues

我的應用程序需要Internet連接,因此在ApplicationDelegate的applicationDidFinishLaunching我正在運行以下命令:

[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];

hostReach = [[Reachability reachabilityWithHostName: @"www.apple.com"] retain];
[hostReach startNotifer];
[self updateInterfaceWithReachability: hostReach];

但是由於某種原因,這似乎觸發了兩次,因為記錄的內容如下:

2010-02-04 14:25:48.004 myApp[201:207] Reachability Flag Status: -- ------- networkStatusForFlags
2010-02-04 14:25:48.240 myApp[201:207] STATUS: Access Not Available
2010-02-04 14:25:48.499 myApp[201:207] Reachability Flag Status: -- ------- networkStatusForFlags
2010-02-04 14:25:48.517 myApp[201:207] STATUS: Access Not Available

可以正常工作,這很好,但是我有一條警報消息通知用戶沒有連接,它彈出兩次...

為什么可達性通知程序會觸發兩次?

不知道為什么它會彈出兩次。 您是否嘗試注釋掉對startNotifier的調用? 它可能會對reachabilityWithHostName:方法進行初步檢查。

在這種情況下,變通辦法是最合適的解決方法,例如:

static bool userNotifiedOfReachability = NO;

...

- (void)updateInterfaceWithReachability:(Reachbility *)reachability {
    if (!userNotifiedOfReachability) {
        // Notify User

        ...

        userNotifiedOfReachability = YES;
    }
}

這對於“請稍后再嘗試啟動該應用程序”消息來說是適當的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM