2011-10-10 96 views
0

我現在有問題。我想使用wikimeta獲取維基百科數據。我用NSString方法獲取數據(stringWithContentsOfURL:encoding:error :)。但是,有時當連接真的很慢時,我想取消獲取URL數據的過程。但是,當我使用該方法時,我無法停止該過程,因爲我們無法檢測到按鈕或UIView的任何觸摸。任何人都可以幫我解決我的問題?任何方式從URL獲取數據並將其設置在UITextView中,以便我們可以在UITextView中查看數據。如何從Web獲取數據並將其插入UITextView?

Thanx before。問候。

回答

0

如果我正確理解你的問題,比你不能按下按鈕,因爲你在主線程上執行網絡連接,這會導致UI凍結。

正確的方法是在後臺線程上執行長操作,並且只對主線程執行UI操作。

NSURLConnection提供異步方法,使您可以輕鬆地在後臺線程上實現從服務器實際獲取數據。 您可以閱讀有關如何使用這些方法的信息NSURLConnection Class Reference

但是,多線程的概念非常重要,我強烈建議您在開始使用異步方法之前先了解一下它。

你可以閱讀的apple documentation

一個完整的指南後,你學的基本概念,我建議你閱讀this tutorial。它使用ASIHTTPRequest對於初學者來說是一個過度的殺手鐗,但是在我看來,線程概念的解釋非常好。

+0

只要使用NSURLConnection的異步方法來檢索字符串就簡單多了。 –

+0

也許。但多線程是一個非常重要的概念,所以最好現在正確地學習它,然後理解如何簡化事情,而且本教程非常具有教育意義。它只是使用ASIHTTPRequest而不是NSURLConnection,但它是相同的概念。 – adamsiton

+0

是的,但是 - 如果OP不知道異步調用,GCD將是一個大跳躍。此外,NSURLConnection的異步調用很容易使用,並且無論如何都是後臺調用。所以你的ASIHTTPRequest建議不會做得更好。吻。 –

相關問題