NSUserDefaults簡單的資料儲存

2021-07-09 02:21:19 字數 1791 閱讀 4271

nsuserdefaults簡介

nsuserdefaults是乙個單例,在整個程式中只有乙個例項物件,他可以用於資料的永久儲存,而且簡單實用,nsuserdefaults適合儲存輕量級的本地資料,一些簡單的資料(nsstring型別的)例如密碼,**等,nsuserdefaults肯定是首選

nsuserdefaults可以儲存下列型別的資料:

nsnumber(nsinteger、float、double),nsstring,nsdate,nsarray,nsdictionary,bool

如果想要將上述資料型別的資料永久儲存到nsuserdefaults中去,只需要簡單的操作(乙個value 乙個key ),例如,想要儲存乙個nsstring的物件,**實現為:

//將nsstring 物件儲存到 nsuserdefaults 中

nsstring *passwd=@"dxt";

nsuserdefaults*aaa= [nsuserdefaults

standarduserdefaults];

[aaa setobject:passwd forkey:@"aaapassword"];

將資料取出也很簡單,只需要取出key 對應的值就好了

//從nsuserdefaults中取出剛才儲存的字串 "dxt"

nsuserdefaults*bbb = [nsuserdefaults

standarduserdefaults];

nsstring *passwd1= [ bbb objectforkey:@"aaapassword"];

注意:對相同的key賦值約等於一次覆蓋,要保證每乙個key的唯一性

值得注意的是:

nsuserdefaults 儲存的物件

全是不可變的(這一點非常關鍵,弄錯的話程式會出bug),例如,如果我想要儲存乙個 nsmutablearray 物件,我必須先建立乙個不可變陣列(nsarray)再將它存入nsuserdefaults中去,**如下:

nsmutablearray *mutablearray = [nsmutablearray

arraywithobjects:@"123",@"234",@"345"

,nil];

nsarray * array = [nsarray

arraywitharray:mutablearray];

nsuserdefaults*user = [nsuserdefaults

standarduserdefaults];

[user setobject:array forkey:@"

記住存放的一定是不可變的

"];取出資料是一樣的,想要用

nsuserdefaults中的資料

給可變陣列賦值

nsuserdefaults *user = [nsuserdefaults standarduserdefaults];    

nsmutablearray

*mutablearray =

[nsmutablearray arraywitharray:[user objectforkey:@"記住存放的一定是不可變的"]];

切記勿寫為

nsmutablearray

*mutablearray =[user objectforkey:@"記住存放的一定是不可變的"];

//這樣寫後,mutablearray 就變成了不可變陣列了,如果你要在陣列中新增或刪除資料就會出現bug

NSUserDefaults儲存顏色

inte ce nsuserdefaults color void setcolor nscolor thecolor forkey nsstring key nscolor colorforkey nsstring key end implementation nsuserdefaults col...

NSUserDefaults儲存資料

1.用處 nsuserdefaults用來儲存類似使用者的配置 程式設定資訊等這些的資料 ios下可以使用nsuserdefault nskeyedarchiver sqlite coredata幾種常用的方式來儲存資料,其中nsuserdefaults用來儲存類似使用者的配置等這些的資料,後兩者使...

NSUserDefaults 用來儲存使用者設定資訊

nsuserdefaults 可以用來儲存使用者設定資訊,下次啟動程式的時候可以直接讀取,比儲存在檔案和資料庫中要方便很多。nsstring const int hall filter speed inthallfilterspeed nsstring const int hall filter s...