2012-04-29 36 views
3

長時間閱讀,第一次在這裏發佈海報。Objective-c,將NSURLConnection結果傳遞給View Controller

我創建了一個測試應用程序,創建一個NSURLConnection,然後在UILabel上顯示結果。

我目前使用的通知中心觀測,這觸發從內connectionDidFinishLoading通知等待連接成功完成,在我尋找的結果。

不過,我很努力構思是在哪裏存儲響應數據,這樣我可以從我的瀏覽器訪問它,並張貼結果到的UILabel。 (或從比我的連接類的一個實例,其他任何地方,對於這個問題)。

我不想直接張貼到的UILabel從connectionDidFinishLoading。我需要一種方式來決定我將如何處理響應 - 所以我的連接類保持通用。

我需要一個更好的方法來保存響應數據的某個地方,我可以在連接類的實例終止後引用它。

理想情況下,它應該在某個地方可以打開Connection Class的多個實例,並依次訪問每個響應,因爲我需要它們。這消除了在我的View Controller或其他更全局的地方創建一個變量並將響應轉儲給它的可能性。

有關設計模式可以/應該在這裏使用的任何想法將不勝感激!

+0

NSMutableDictionary,NSMutableArray是主存儲選項。但這取決於你存儲的數據。對於我們的參考,一些複雜的體系結構應用程序使用核心數據與sqlite結合存儲數據。 – 2012-04-29 05:22:27

+2

嘗試在NSNotification的'userInfo'字典中設置它! – 2012-04-29 05:40:32

+0

@ H2CO3 - 'userInfo'完美運行,我不知道我錯過了這個功能。謝謝! – itnAAnti 2012-04-29 16:40:49

回答

1

我對你的建議,開始有:

  1. 做一個單例類。我將有一個屬性NSDictionary * info或NSArray * infoList;您將可以訪問來自應用程序的相同數據。更新屬性,發佈通知,從viewController訪問屬性。
  2. 將信息存儲到plist/file中。序列化信息,或保存普通的流。無論你喜歡什麼。因此,當你完成寫入文件後,發佈通知,從應用程序內的任何地方的文件中讀取。

在這兩種情況下,如果你想要多個連接,我建議去工廠設計模式。

+0

正如我在我上面的評論中指出的,對於這個測試應用程序,我使用'userInfo'(我以前不知道)。不過,一旦我擴展了功能,我可能會轉向單體類建議 - 這樣我可以添加更多的自定義邏輯。 – itnAAnti 2012-04-29 16:43:18

相關問題