2010-05-14 88 views
0

當鍵盤上的文本框的返回按鈕被點擊時我想添加一個UIView,然後連接到一個網站NSURlConnection sendsynchronousrequest,我的代碼依次爲 但是當我運行在模擬器中(我不能在設備上運行)連接先運行,然後添加子視圖(即與代碼順序相反) 爲什麼這樣以及如何停止它,因爲我希望視圖添加,然後完成連接,然後刪除視圖。子視圖不是立即添加(iphone)

+0

你爲什麼使用同步請求? – RunLoop 2010-05-14 06:55:47

回答

1

正在添加子視圖,但視圖是由runloop繪製的。通過在主線程上發出同步請求,您將阻塞runloop,因此只有在請求完成後纔會繪製視圖。通過使用異步API或在後臺線程中執行同步請求,異步執行請求。

0

許多操作發生在運行循環上,而不是按照您編寫的順序。如果您確實想要按照您的方式進行編碼,請執行選擇器:withObject:afterDelay:延遲爲0 可能會觸發您的NSURlConnection(您需要將該代碼移至某個方法)。

正如JK所示,異步請求可能會解決它,並改進UI。我是ASIHPPTRequest庫的忠實粉絲,這使得異步微不足道。

相關問題