使用ASIHTTPRequest可以检查WIFI

时间:2012-01-29 15:04:52

标签: iphone objective-c asihttprequest

我正在使用ASIHTTPRequest。我需要知道如何使用它来做以下事件;

以下是我应该检查互联网可用性的方式,但在哪种情况下我应该添加它以解决以下问题;

self.remoteHostStatus           = [[Reachability sharedReachability] remoteHostStatus];
self.internetConnectionStatus   = [[Reachability sharedReachability] internetConnectionStatus];
self.localWiFiConnectionStatus  = [[Reachability sharedReachability] localWiFiConnectionStatus];

1。)像foursquare这样的应用程序会在互联网丢失后立即弹出警告 ?这是怎么做到的,我应该在什么情况下编码呢? (用户可能正在执行任务,突然wifi关闭,然后我应该弹出一个警告,说没有wifi可用)

2。)一旦互联网/ wifi回来,我需要刷新并更新数据。这是怎么做到的? (它应该持续监听,一旦互联网恢复,它应该更新该视图)

1 个答案:

答案 0 :(得分:3)

Reachability发布了一个名为kReachabilityChangedNotification的通知。

您可以使用Reachability的

强制生成该通知
- (BOOL)startNotifier;
- (void)stopNotifier;

首先注册该通知 - 例如viewDidLoad中的UIViewController

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

添加以下方法 - 例如,添加到UIViewController

- (void)reachabilityChangedNotificationSent:(NSNotification *)notification
{
    NSLog(@"reachability changed: %@", notification.userInfo);
}

现在只需调用startNotifier - 例如再次在viewDidLoad中,只要发生任何变化,您就会收到通知。

[[Reachability sharedReachability] startNotifier];

不要忘记将自己从该通知中删除,并在完成后调用stopNotifier。坚持我的示例意味着您应该将其添加到viewDidUnload实施中。

[[Reachability sharedReachability] stopNotifier];
[[NSNotificationCenter defaultCenter] removeObserver:self
                                                name:kReachabilityChangedNotification 
                                              object:nil];