2010-10-21 39 views
0

任何人可以幫我請...如何將多個視圖控制器在全球範圍內共享數據

我一個模型中有一個巨大的物體。我將它作爲一個單獨的類來使用,並將對象返回給其他調用。但對象非常大,因此應用程序正在進行刪除。而不是返回如何在全局共享數據,何時分配對象以及何處釋放對象。我不需要在視圖控制器中的對象中的所有數據..我需要從該對象的視圖控制器的具體數據...

謝謝。

+0

你在說什麼類型的數據? – 2010-10-21 16:28:05

+1

確保單身實際上是一個單身人士,否則你將有多個相同模型的實例。但是,如果應用程序因模型的內存佔用而終止,則只能通過減小模型的大小和/或加載內存中的必要位來避免該問題。如果它是一個巨大的圖像,將其分成多個圖塊。如果您要實例化並堆疊很多視圖控制器,請務必實施適當的內存管理(即釋放viewDidUnload中保留的視圖):它可能無法解決問題,但可以緩解問題。 – sigsegv 2010-10-21 16:33:28

+0

這就是我所掌握的。如果模型太大,你需要一個不同的方法,如平鋪或數據庫或... – 2010-10-21 16:35:39

回答

0

您可以將指針儲存到您的應用程序委託,並使用

BlahAppDelegate* delegate = [[UIApplication sharedApplication] delegate]; 
id bigObject = delegate.bigObject; 

由於應用程序的委託將活得比視圖控制器找回它,你不應該擔心保留和釋放它。

單例類應該類似地工作,只要單例實例方法(檢索一個創建的實例)調用在實例返回之前保留在實例上。當視圖解除分配時,確保你在實例上調用釋放。

相關問題