2013-05-31 49 views
0

我試圖下載一個網站,但只獲得整個網站的四分之一。網站不完全下載 - 使用stringWithContentsOfURL:

NSString *tagiString = @"http://www.tagesanzeiger.ch"; 
    NSURL *tagiURL = [NSURL URLWithString:tagiString]; 
    NSError *error; 
    NSString *text =[NSString stringWithContentsOfURL:tagiURL 
              encoding:NSASCIIStringEncoding 
               error:&error]; 

我沒有收到任何指示下載沒有完成的錯誤。 任何想法?

+0

你試圖記錄文本字符串,並檢查你是否得到所需的HTML字符串? – Divyu

+0

你能詳細說明你期望什麼與你得到什麼嗎? –

+1

我檢查了你的代碼。我能夠從url中獲取所有數據。在控制檯中打印文本並檢查。 –

回答

1

我不會推薦使用stringWithContentsOfURL這個。相反,你應該使用iOS的內置網絡類,它可以更好地控制下載操作。例如,對於stringWithContentsOfURL,您無法調整或設置超時,這意味着在較慢的連接中,您的下載很容易失敗(這可能是此處發生的情況)。

默認情況下,stringWithContentsOfURL也不是異步的,所以除非你在輔助線程上運行該代碼,否則你將停止你的UI(這很糟糕)。

這個存在的問題 - Making stringWithContentsOfURL asynchronous - Is it safe? - 有一些示例代碼展示瞭如何使用更合適的NSURLConnection類將字符串下載爲字符串。它會使錯誤處理和調試更容易。

+0

太棒了,謝謝! – Pete