2013-07-13 40 views
0

我有這個NSURL像這樣:的Objective-C,如果NSURL失敗,則顯示UIAlertView中

NSURL *url = [NSURL URLWithString:@"http://jamessuske.com/isthedomeopen/isthedomeopenGetData.php"]; 

,當我連接到互聯網,它工作正常。但如果我不是(或者如果用戶沒有信號),我想要出現一個UIAlertView。我嘗試了下面的代碼(有和沒有if語句),但我的應用程序崩潰。

if(!url){ 
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test Message" 
                  message:@"This is a test" 
                  delegate:nil 
                cancelButtonTitle:@"OK" 
                otherButtonTitles:nil]; 
      [alert show]; 
      [alert release]; 
} 

我做錯了什麼?

我的意思是崩潰,我的意思是我的應用程序打開,並沒有從網址獲取數據。我沒有看到任何錯誤,我只是得到帶到一個頁面,這個熒光筆:

Thread 6 
com.app.root.default-priority 
    - 0 ucol_getVersion 

在它旁邊是這樣的窗口在突出顯示

0x17bbd32: movl 204(%ecx), %edx Thread 6: EXC_BAD_ACCESS (code=2 address=0xcc) 
+0

在哪一行你會崩潰?什麼樣的代碼的崩潰? – stosha

+0

您需要向我們展示更多代碼。 'NSURL'是表示URL的類。它不會嘗試任何形式的網絡連接,除非您專門要求使用專用API。因此,如果用戶恰好處於離線狀態,則不會返回「nil」。很明顯,你的代碼會繼續對有問題的URL做些什麼;請給我們詳細的代碼 –

回答

1

你在做什麼,如果該對象僅檢查url是否爲NULL指針。如果你想檢查一個用戶是否有互聯網連接,我建議嘗試Reachability類,這可以很容易地在網上找到。 This對我來說非常有用。

+0

請不要這樣做。您幾乎可以肯定地想在*之前嘗試某種連接,然後*向用戶顯示錯誤 –

0

建議您檢查互聯網的可用性,如果您正在開發蘋果的互聯網連接要求的應用程序,他們也提供.h和.m文件,即Reachability.h和Reachability.m所以請下載該文件和導入到你的項目中,有一個名爲「internetConnectionStatus」參數,並通過數值使用以下警報

if (internetConnectionStatus == NotReachable) 
{ 
    UIAlertView *responseAlert = [[UIAlertView alloc] initWithTitle:@"Network Error" 
                  message:@"This application requires network connectivity." 
                  delegate:self 
                cancelButtonTitle:@"Exit" 
                otherButtonTitles:@"Continue", nil]; 
    [responseAlert show]; 


} 
else 
{ //do other stuff here 
} 

你可以找到的可達性文件Here,你可以從GitHub 使用任何可達性文件ThnQ

相關問題