2012-05-11 54 views
0

在此代碼中,我嘗試重新連接時,網絡不好,直到連接。當網絡不好時,我想處理使用stringWithContentsOfURL方法?在ios

NSString * szURL =[NSString stringWithFormat:@"http://soxxx9.cafe24.com/event.php"]; 

    NSURL *url = [NSURL URLWithString:[szURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding ]]; 

    NSString *strData; 
    while(TRUE) 
    { 
    NSError *error = nil; 

    strData= [NSString stringWithContentsOfURL:url 
              encoding:NSUTF8StringEncoding 
               error:&error]; 
    if(!error) 
    break; 

    NSLog(@"error occur"); 
    [strData release]; 
    strData=nil; 
} 

此編碼是正確的?

這是否發生低內存警告?

如果你有更好的方法,請教我。

回答

0

你應該爲一個類來處理你的連接。這樣你就可以更好地控制它發生了什麼。 MKNetworkKit是一個解決方案,你可以檢查它here

1

此代碼似乎是大量消耗功率時,網絡是出:你會嘗試億次下載的東西是不可達...

看一看可達性類,由蘋果公司提供的(http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html) 。你會在gitHub上找到ARCified版本(例如https://github.com/tonymillion/Reachability)。

這個想法是註冊關於網絡可達性的通知。

所以,在你的代碼:獲取你想要的字符串之前

  1. 檢查網絡資源的可用性。
  2. 如果是可用的,用你的代碼,而不同時(TRUE)
  3. 檢查字符串對於任何錯誤,而檢索該客戶端=在你的代碼

如果網絡不可用,則」必須通知用戶網絡無法訪問,並註冊可達性通知,以便一旦可再次訪問字符串就可以檢索字符串,例如。

相關問題