我正在使用UserDefaults在導航控制器的後按下存儲小陣列。我正在返回的視圖需要使用該數組。NSUserDefaults同步
我讀過你不應該爲了性能原因手動調用synchronize
方法,NSUserDefaults會定期寫入數據。但是,我可以肯定,該數組將始終更新爲在後退按鈕按下使用的視圖?
的陣列需要被permantely存儲以及這就是爲什麼我使用NSUserDefaults的
我正在使用UserDefaults在導航控制器的後按下存儲小陣列。我正在返回的視圖需要使用該數組。NSUserDefaults同步
我讀過你不應該爲了性能原因手動調用synchronize
方法,NSUserDefaults會定期寫入數據。但是,我可以肯定,該數組將始終更新爲在後退按鈕按下使用的視圖?
的陣列需要被permantely存儲以及這就是爲什麼我使用NSUserDefaults的
你可以稱之爲synchronize()
但需要注意以下皺它的。
因爲這個方法是每隔一段時間自動調用,使用此方法僅如果要更新不能等待自動 同步(例如,如果你的應用程序即將退出)或 用戶默認使用磁盤上的內容,即使 您尚未進行任何更改。
在你的情況,你應該調用它,因爲你正在改變和系統可能不會觸發時間synchronize()
方法和回來的視圖控制器上,當你的支票可能無效後推。
我可以建議的另一種方法是聲明一個全局數組,可能在App Delegate
中,並設置和提取值。
現在,當應用程序即將終止,在剛剛applicationWillTerminate
保存此全局陣列中用戶默認,稱synchronize()
,同樣,當應用程序即將推出,從獲取用戶默認值和值設置爲全局陣列。
這樣,您只需要撥打synchronize()
一次,您也將擁有最新的數據副本。
你的數組包含什麼? –
UserDefaults不是在視圖控制器之間傳遞數據的正確方法。 – rmaddy
也許你應該看到https://stackoverflow.com/questions/5210535/passing-data-between-view-controllers – rmaddy