2010-02-08 75 views
1

使用NSUserDefaults來保存/加載一些小值...這很簡單。哪裏是放置NSUserDefault保存/加載代碼的最佳位置?

但是哪裏我會把我的保存或加載代碼?

我想要的默認顯示一定的視圖時只有/ LOAD。 我想要默認值保存,只有當該視圖退出/卸載/隱藏。

(我創建使用「基於視圖模板」一個簡單的應用程序,並有我的字符串值上來看,裏面UITextFields的。)

回答

3

怎麼樣的該視圖的UIViewControllerviewWillAppeardealloc/viewDidDisappear方法呢?

+0

我擔心viewWillAppear會「太快」地運行我的代碼。 (該視圖還沒有存在。) 我擔心viewDidDisappear或viewDidUnload會「我爲時已晚」運行我的代碼。 (視圖已經走了。) 我必須做什麼特別讓viewDidDisappear或viewDidUnload運行? (除了創建它們) – Bonnie 2010-02-08 01:47:10

+1

'viewWillAppear'在您的視圖即將顯示在屏幕上時運行(所以它必須已經存在)。同樣,'viewDidDisappear'將在您的視圖離開屏幕後運行。 'viewDidUnload'只在你的應用程序內存不足時被調用(所以並不總是) – 2010-02-08 01:53:29

+0

在這兩種情況下,你的視圖仍然存在。 – 2010-02-08 01:55:02

0

好了,你談論的觀點如此:

viewDidLoad/viewWillLoad 
viewDidUnload/dealloc 

似乎是很好的候選人。此外,在你的init方法中,特別是如果你想在那個時候初始化iVars到NSUserDefaults的東西。

+0

這些也是我原來的想法,但是她可能想要這種情況發生*每*次視圖顯示/消失 – 2010-02-08 01:02:18

+0

是的,你的權利 - 我想這實際上取決於OP的需求。 – 2010-02-08 01:49:14

0

你應該始終把代碼本身到自己的文件對來管理用戶默認值,這個模塊也可以負責序列化和反序列化,雖然被序列化對象應該擁有的是藝術鑑賞力本身。您只能在viewDid Load中獲得絕對需要的設置,以免減慢初始化。

如果你有廣闊的用戶設置,數組和字典,多會話數據,不要讓一個字典,鍵下存儲他們的錯誤。將它們分開。

如果您的應用程序需要用戶登錄(我的密碼大部分是由我做的),那麼只有在登錄後,從最小負載的用戶設置驗證密碼後,您纔會繼續加載較重的會話設置。無論如何,這是「用戶時間」。

相關問題