我想在連接可用時觸發動作。有可用的手動檢查互聯網連接的解決方案。我發現的一種方法是使用NSTimer在固定的時間間隔內檢查互聯網連接。但它是檢查它的最有效方法嗎?如果不是,這有什麼正確的解決方案?連接可用後立即觸發動作
回答
檢查reachability code由apple.In提供appdelegate.m你可以看到這個method.It會通知其上的網絡change.Work
//Called by Reachability whenever status changes.
- (void) reachabilityChanged: (NSNotification*)note
{
Reachability* curReach = [note object];
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);
[self updateInterfaceWithReachability: curReach];
}
太棒了!謝謝!將在2分鐘內接受答案。 – 2013-03-12 17:06:57
在這裏,你怎麼能觀察者註冊和聽吧,你的應用程序正在收聽kReachabilityChangedNotification
&每當網絡狀態發生變化時都會提示您。
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityHasChanged:) name:kReachabilityChangedNotification object:nil];
internetReachable = [[Reachability reachabilityForInternetConnection] retain];
[internetReachable startNotifier];
-(void) reachabilityHasChanged:(NSNotification *)notice
{
// called after network status changes
NetworkStatus internetStatus = [internetReachable currentReachabilityStatus];
switch (internetStatus)
{
case NotReachable:
{
NSLog(@"The internet is down.");
break;
}
case ReachableViaWiFi:
{
NSLog(@"The internet is working via WIFI.");
break;
}
case ReachableViaWWAN:
{
NSLog(@"The internet is working via WWAN.");
break;
}
}
}
這看起來像是像我這樣的NSNovice更簡單的解決方案。:) – 2013-03-12 17:11:32
這是'Reachability'如何工作! – nsgulliver 2013-03-12 17:12:59
我在你的解決方案中的前三行添加到了我的AppDelegate.m didFinishLaunchingWith ..並在ReachabilityHasChanged-Not Reachable中添加了一個alerview。但不知何故它不會調用這個方法 – 2013-03-12 18:48:16
- 1. AddEvenLister在連接後立即觸發
- 2. KryoNet:連接後立即斷開連接
- 3. 立即觸發setTimeout
- 4. Alarmmanager.setRepeating觸發立即
- 5. 「fadeOut」立即觸發後「點擊」?
- 6. 動畫塊 - 完成將立即觸發
- 7. 用戶在chrooted SSH連接成功後立即斷開連接
- 8. 時間觸發天青功能在部署後立即觸發
- 9. AlarmManager立即觸發廣播
- 10. WF DelayActivity立即觸發?
- 11. 如何立即觸發NSTimer?
- 12. EmberJs異步立即觸發
- 13. addEventListener(「click」,...)立即觸發
- 14. Java套接字讀取未收到連接建立後立即發送寫入
- 15. Swift Socket.io在連接未執行後立即發送的事件
- 16. 通知到達時是否可以立即觸發活動?
- 17. 關閉連接後立即刪除連接對象
- 18. sqlalchemy在創建新連接後立即處理連接池
- 19. Android BluetoothSocket連接後立即斷開連接
- 20. 打開actionsheet立即觸發數據動作
- 21. AlarmManager在應用關閉後立即觸發
- 22. cron觸發器立即啓動,然後在時間間隔後運行
- 23. 無效擴展,立即觸發OnNext,然後在一段時間內觸發
- 24. Android - 在應用程序打開後立即檢查Internet連接
- 25. systemd:SIGTERM啓動後立即
- 26. 圖像載入觸發器立即
- 27. 如何立即觸發dropdownlist事件?
- 28. IPhone - 如何立即觸發事件
- 29. Javascript函數立即觸發自己
- 30. Microsoft Flow不會立即觸發?
爲什麼不直接使用'Reachability'狀態並在狀態更改時執行操作? – nsgulliver 2013-03-12 16:55:53
問題是如何不斷檢查可達性狀態。 – 2013-03-12 17:00:19
如果您已經正確添加了觀察者,那麼只要網絡狀態發生變化,它就會更改狀態並提示您。 – nsgulliver 2013-03-12 17:02:12