0

我正在研究一個iphone應用程序,並且不知道在視圖之間保存臨時數據的最佳方法。例如我有一個服務器上的XML,我解析數據到一個對象,以便我可以保存信息。 XML有一些數據,我想要顯示在一個視圖和其他數據,我想在另一個視圖上顯示。我有一個名爲dataStore的類,我想在視圖中保存數據,那麼最佳的iphone實踐是什麼?iphone開發中的對象之間傳遞數據的最佳方式?

我也看着很多選擇,我認爲它之間的選擇:

1)使用數據存儲作爲一個代表,並委託保存數據看過那部可以被訪問。

2)使用dataStore作爲單例類,只允許該類的一個實例,並從dataStore類的共享實例訪問數據。

3)甚至可能是一個NSMangedObjectContext,我不知道但熟悉android通過應用程序上下文和實例傳遞數據的方式。

如果有人可以幫助我選擇哪一個是iphone上的最佳做法,我將不勝感激。

回答

0

在你的情況下,我建議將dataStore類轉換爲單例。在單例中,解析數據並使方法返回視圖所需的信息。如果您希望數據在啓動時保持不變,核心數據(managedObjects)很好。雖然很常見,但將數據存儲在appDelegate中是我選擇的最後一個選項。

-1

這些都不是真正的MVC。你想三類:

  • 模型,其中包含的數據,
  • 視圖,經常在IB完全實現爲.xib
  • 視圖控制器,這是.xib的文件所有者並將數據作爲實例字段。這個負責將模型的數據傳遞給視圖,視圖將視圖控制器設置爲它的delegatedataSource。這樣,視圖就可以重複使用,並且只處理一小部分數據(即與實際可見的一樣多)。
+0

我想我最好由具有界面生成器設計的意見,然後有viewControllers實現模型 - 視圖 - 控制器設計模式,但也有視圖控制器交互與數據訪問對象(DAO)在回報與數據存儲交互的唯一併將數據返回給視圖控制器。所以我的困惑在於實現模型,包括一個iphone數據模型? – 2010-10-23 16:51:59

+0

該模型定義的數據,所以在你的情況下,將處理從服務器下載,解析XML,將其變成一個對象,你可以處理(這可能會然後由的viewController訪問),以及所有向後萬一你希望將數據發送回服務器。 – 2010-10-23 20:42:18

0
  1. 不,你不能讓數據存儲區是一個代表。你永遠不應該保留你的代表,所以它不是一個數據的好地方,只是爲了行爲。

  2. 很可能是一個單身人士。你在這裏有什麼可能是你的應用程序模型,是否有任何理由你的應用程序應該能夠處理兩個模型?它可以同時顯示多個文檔嗎?不要寫一行代碼來試圖阻止你的單例客戶創建第二個實例! Objective-C是一個動態運行時間,持久用戶無論如何都可以,所以你的代碼所做的就是添加更多的代碼行和潛在的錯誤。

  3. 不要打擾核心數據和NSManagedObjectContext,直到你真的需要。你只需要如果你打算在你的模型中處理比以往任何時候都更多的數據。

2

您可以通過NSNotification宣佈數據已到達。您可以將臨時對象與通知一起作爲發件人或信息詞典發送。兩個對象需要該數據的部分則可以拉這些部分並保留這些正確的話,和臨時數據對象可以是僅僅是:暫時的,僅持續直至通知結束。只有你的視圖需要和關心的部分在哪裏運行,並且每當有意義時,每個視圖控制器都可以釋放它的部分。

相關問題