2017-04-20 53 views
1

我有一個應用程序使用與視圖控制器相對應的文件,但是我想在我的程序中包含userdefaults(NSuserdefaults)。我在哪裏創建它,如在線在哪裏使用Userdefualts

let defaults = NSUserDefaults.standardUserDefaults() 

我在哪裏可以創建userdefaults?我會把它放在一個單獨的文件中,說一個視圖控制器文件,說一個開始scree?或者我會爲NSuserdefualt創建創建一個文件,並在其他viewcontroller文件中調用它?

+0

standardUserDefaults()是一個單例。它是由您的應用程序自動創建的。 – PeejWeej

+2

你打算如何使用'UserDefaults'?只能用它來存儲一些信息,比如用戶設置。不要用它來存儲你的應用程序的數據。 – rmaddy

+0

@rmaddy是的,我只是爲了一次性期限協議的事情的理由,看看它是否是第一次應用程序運行 –

回答

0

NSUserDefaults

的NSUserDefaults的類提供 編程接口與所述默認的系統進行交互。默認系統允許 應用程序定製其行爲以匹配用戶的偏好。例如,您可以允許用戶確定應用程序顯示的測量單位爲 ,或自動保存文檔 的頻率。應用程序通過將 值分配給用戶默認數據庫中的一組參數來記錄此偏好。 參數被稱爲默認值,因爲它們通常用於 確定應用程序在啓動時的默認狀態或默認情況下其作用 的方式。

您可以在源代碼中的任何位置調用它,因爲它是單例類。您通常使用它來存儲用戶設置。

您可以參考這個answer,如何在斯威夫特3用它和雨燕2.3

+0

好的,但我在哪裏創建它?我把它放在一個單獨的文件? –

+0

不需要文件。只要使用它。它會在您的應用程序空間內自動創建文件。當你想保存ncuserdefaults的實際內容時,不要忘記調用同步。 –

1

你可以把它放在任何地方真的。把它看作是改變一個變量的值 - 你可以在那裏放置這個函數。

下面是一個例子:

let highscore = 1000 //this is the value 
//below is the saving part 
let userDefaults = NSUserDefaults.standardUserDefaults() 
userDefaults.setValue(highscore, forKey: "highscore") 
userDefaults.synchronize() 

我可以把節省的部分,每當我想改變和保存價值。例如,你可以把它放在一個按鈕的Action中,在viewdidload中,等等。 然後,通常當您通過將加載代碼(不包括在此答案中)放入viewDidLoad中來進入應用程序時,再次「加載」它,但是您也可以將它放入按鈕操作,函數等等。