我正在使用ASIHTTPRequest。我需要知道如何使用它来做以下事件;
以下是我应该检查互联网可用性的方式,但在哪种情况下我应该添加它以解决以下问题;
self.remoteHostStatus = [[Reachability sharedReachability] remoteHostStatus];
self.internetConnectionStatus = [[Reachability sharedReachability] internetConnectionStatus];
self.localWiFiConnectionStatus = [[Reachability sharedReachability] localWiFiConnectionStatus];
1。)像foursquare这样的应用程序会在互联网丢失后立即弹出警告 ?这是怎么做到的,我应该在什么情况下编码呢? (用户可能正在执行任务,突然wifi关闭,然后我应该弹出一个警告,说没有wifi可用)
2。)一旦互联网/ wifi回来,我需要刷新并更新数据。这是怎么做到的? (它应该持续监听,一旦互联网恢复,它应该更新该视图)
答案 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];