2010-10-26 108 views
6

我有一個可以在線和離線使用的iPad應用程序,但是當我離線時,一旦在線可用性再次成爲選項,就會需要進行網絡服務調用。iOS/iPad的消息隊列 - 類似MSMQ?

例子: 新客戶端添加到應用程序,這需要發送到Web服務,但由於我們正處於離線狀態,我們不想減緩用戶失望,所以我們讓他們在本地添加和繼續下去,但我們需要記住,我們可以在網絡服務上進行調用。同樣的事情下訂單等。

是否有某種隊列可以設置,一旦連接就會觸發?

回答

3

我不認爲像MSMQ這樣的重量級工具的開銷是需要一個簡單的動作。您可以使用核心數據,使用調用Web服務所需的數據來持久保留託管對象,並且只能在成功發佈後刪除每個託管對象。在連接開始時,可​​能或可能沒有方法捕獲事件,但當第一條消息排隊時,您肯定可以創建重複的NSTimer,並在隊列中沒有消息時停止它。

+0

隊列部分是我的問題,尋找關於如何實現這一目標一點點方向。不知道如何排隊函數調用。我剛剛使用MSMQ作爲例子,因爲我曾經使用過它。 – Slee 2010-10-26 11:51:04

+0

我剛剛告訴你如何排隊。 :-)使用核心數據。任何有序的集合都是有效的隊列。取一個,處理它,刪除它。你甚至可以排隊函數調用,但可能沒有必要,因爲你的處理線程可以根據它提取的數據知道要調用哪個函數。 – 2010-10-26 12:03:46

+0

沒有什麼像俯瞰明顯 - 謝謝你! – Slee 2010-10-27 17:29:43

1

該庫處理離線持久消息隊列,用於您描述的情況。它說,阿爾法從一年前的,但我已經證實了它在生產應用中使用:

​​