2013-03-06 25 views
0

我有一個應用程序,從應用程序委託,調用同步引擎。同步引擎從Web服務中獲取來自Web的數據,並將其解析並放入核心數據庫中。如何檢查Internet連接或加載本地文件?

您控制器爲了呈現數據而調用對核心數據庫的提取。

我想添加檢查Internet連接的功能。我是否應該檢查應用程序委託中的Internet連接,以及是否有一個調用同步引擎,否則,如果沒有...我該怎麼做,只是將它留空?

If (Internet) { 
//call sync engine 
} else { 
//do nothing 
} 

回答

0

您是否嘗試過可達性?它的工作原理是這樣的:

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

online = [Reachability reachabilityForInternetConnection]; 
[online startNotifier]; 

- (void)networkChanged:(NSNotification *)notification { 

    NetworkStatus remoteHostStatus = [online currentReachabilityStatus]; 

    if(remoteHostStatus == NotReachable) { 
     //use local file 
    } 
    else if (remoteHostStatus == ReachableViaWiFiNetwork) { 
     //use remote file 
    } 
    else if (remoteHostStatus == ReachableViaCarrierDataNetwork) { 
     //use remote file 
    } 
} 
+0

是的我正在使用可達性。但我的問題是如何處理使用本地文件,而不是Web抓取文件。 – marciokoko 2013-03-06 02:20:05

+0

@marciokoko查看上面編輯的答案。當您沒有連接到互聯網時,只需使用本地文件即可。 – wigging 2013-03-06 04:14:52

1

要檢查連接,有幾個選項:

  1. 使用Apple's Reachability類。易於使用,簡單但不兼容ARC。
  2. 使用替代Apple的第三方類。 This one很好。 ARC兼容。
+0

是的,我正在使用可達性。但我的問題是如何處理使用本地文件,而不是Web抓取文件。 – marciokoko 2013-03-06 02:20:37

+0

如果您已經將本地和網頁抓取的文件構建爲相同,則只需對「可達性」進行條件檢查即可。然後,您可以從該文件填充模型對象。 – Anupdas 2013-03-06 02:28:40