2012-01-18 56 views

回答

1

如果您使用正常的NSURLConnection,您可以將它發送給cancel命令。 (docs

INIT喜歡:

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url]; 
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

取消像這樣:

[connection cancel]; 
+0

嘿謝謝你的回覆,但我沒有獲得連接變量以及它正在庫文件中完成。請建議我爲上述評論提出的最佳解決方案... – Nitu 2012-01-19 06:49:55

+0

Quick'n dirty:編輯lib必須公開連接。例如。像這樣: - (NSURLConnection *)connection {return _connection; }或者,您可能想要自己處理連接,它足夠容易,爲什麼要使用lib? – Wolfert 2012-01-19 14:14:09

0

我們是在談論+[NSURLConnection sendSynchronousRequest:returningResponse:error:]?在這種情況下,您無法停止此請求。

如果您需要在航班中途停止網絡操作,那麼您需要使用異步API。我個人更喜歡使用NSURLConnection推出我自己的產品,以及當前任務的最少工作量,通常是NSOperation或者只是一些GCD。即使您選擇使用其他方法,我也強烈建議您學習如何使用NSURLConnection

其中一個這樣的其他方法是AFNetworking,該包裝NSURLConnectionNSOperation,您可以撥打cancel

+0

嘿,謝謝你,我有一些使用同步連接的庫文件,現在無法修改代碼。我在另一個線程中調用服務器,並在從後臺導航到前臺時,我正在檢查該線程是否仍在執行,如果是這樣,我取消它以避免崩潰,但是我仍然在低網絡連接中崩潰「iphone未能及時恢復」。我想解決這個問題,你能幫我解決嗎? – Nitu 2012-01-18 12:09:32

+0

@Nitu實際上並沒有實施取消。當你的應用程序被要求恢復時,你有20秒的時間來回應,否則看門狗會殺死你。更改代碼不使用同步網絡訪問是您唯一的解決方案。 – PeyloW 2012-01-18 15:23:44

+0

Hey Peylow請問你能清楚一點。謝謝。 – Nitu 2012-01-19 06:33:40

相關問題