2012-09-21 51 views
0

我使用下面的代碼如何處理網絡或服務器錯誤?

NSMutableArray *image=[[NSMutableArray alloc]init]; 
    for(int i=1;i<4;i++) 
    { 
     NSString *urlString =[NSString stringWithFormat:@"http://www.isco.com/webproductimages/appBnr/bnr%d.jpg",i]; 
     NSData *photoData = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]; 
     [image addObject:photoData]; 
    } 

我的問題是,如果發生了網絡故障,它顯示線程... 如何處理這個線程?

回答

0

您的「線程」問題(這是一個錯誤/異常)可能是由多種因素引起的。可能是因特網連接斷開,或者服務器發生某種形式的http錯誤。

要開始,請確保您在運行網絡操作時不會丟失任何互聯網連接。有關於如何檢查互聯網連接的建議數量。一種是使用SDK自身提供的Reachability類。看看這篇文章對如何做到這一點:How to check for an active Internet connection on iOS or OSX?

這裏這篇文章將使你對互聯網連接進一步的見解,以及:當你確定它是不是互聯網連接Testing internet connection on iPad app using ios5

,而是一個HTTP服務器錯誤。確保您所調用的http服務正確地傳回數據。我使用一些REST客戶端工具來檢查此問題(REST Client

最後,我測試了您嘗試在瀏覽器上調用的URL,它會拋出Bad Request錯誤。這意味着它與你的iOS代碼無關。如果這臺服務器在你的控制之下,你應該修復它。

0
NSMutableArray *image=[[NSMutableArray alloc]init]; 
     for(int i=1;i<4;i++) 
     { 
      NSString *urlString =[NSString stringWithFormat:@"http://www.isco.com/webproductimages/appBnr/bnr%d.jpg",i]; 

     NSError *error; 
    NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString] options:NSDataReadingUncached error:&error ]; 

     if (data) { 
     [image addObject:photoData]; 
     } 
     else{ 
      if (error) { 
       NSLog(error); 
      } 
     } 


    }