2016-10-04 35 views
0

我在我的應用中使用了以下實現:
- 使用其ID進行關注的主題列表。
- 因互聯網丟失/服務器故障而導致連接失敗時重試連接的系統。如何在iOS上使用AFNetworking/NSURLConnection跟隨「隊列」

讓我們假設一個用戶非常快地按下3個按鈕。
對於每一個NSURLConnection的啓動分配給該主題 如何來走近考慮可能發生的下列情況下該用戶的水龍頭:

A)所有3個連接失敗。所有3個都需要重試,但每個都有不同的參數 - 主題ID。 B)只有2個連接失敗,第三個連接成功。
C)第一次連接失敗,但在用戶按下取消關注按鈕後也失敗。

失敗,在這種情況下,我的意思是彈出窗口出現提示用戶重試。
發生這種情況是因爲NSURLConnection收到404或超時。

+0

這似乎是一個非常廣泛的問題,而不是一個編程問題,而是設計選擇...... – jcaron

回答

2

通常,當連接失敗時,不應讓用戶關閉彈出窗口,而應該在用戶界面中顯示一些指示符。畢竟,用戶通常沒有辦法修復連接,如果用戶不需要這些數據,用戶就不會要求這些數據,所以一旦網絡恢復後就默默地重試數據幾乎總是正確的行爲,使用戶的行爲變得多餘。

在每種情況下,開始監視可達性更改,然後在可達性表示請求可能成功時再試一次。

+0

謝謝你的迴應。彈出窗口會通知用戶,他的互聯網已關閉(如果是這種情況)或服務器關閉。該應用程序根據從服務器下載的數據顯示其所有界面,因此如果連接斷開,用戶無法使用該應用程序就沒有意義。 –

+0

我的觀點是沒有理由讓用戶不得不放棄對話。這是一個額外的點擊,不會給您或用戶帶來真正的好處。如果您在菜單欄下滑動的視圖中顯示該消息,則可以在網絡返回時將其右移回原位,並且用戶仍然可以在不需要點擊屏幕的情況下獲知問題。 – dgatwood