2014-07-09 43 views
0

我有一個對象需要使用網絡中的數據進行初始化,並且沒有下載的數據也沒有意義。但在我看來,在其init方法中執行異步網絡呼叫並不是一個好主意,因爲該對象不會立即準備就緒,並且可能導致混淆。我應該只使用基本的init方法,它的所有屬性都會創建一個空對象,並使用其他(非init)方法填充網絡中的數據,這些數據將被其他對象顯式調用(例如視圖控制器使用這個對象)?什麼是解決這個問題的好方法?具有異步下載數據的初始對象

+0

爲什麼不下載數據,將其存儲在一個臨時變量,直到你與它的值初始化的對象? –

+0

用於何種對象?數據是什麼?它有意義/你可以提前下載嗎?數據下載時佔位符對象是否有用?是否應該開始下載,然後整個對象異步返回? – Wain

+0

這是一個「用戶」類,它可以添加/刪除朋友。朋友列表存儲在後端,所以'_friends'屬性必須從網絡填充。我想將所有後端邏輯封裝在類中,以便視圖控制器不會爲此而煩惱。目前,我有一個'init'方法,它可以分配init屬性,addFriend和removeFriend方法以及getFriendsFromBackendWithCompletionHandler方法。 – p4sh4

回答

0

我認爲解決方案來自具有代碼運行的正確順序:

1)進入到網絡和獲取數據(顯示在這一次的用戶acivity指示符)

2)服務器返回響應 - >取到你的對象

3)響應顯示數據或使用