ios NSUserDefaults基本使用

2021-06-28 23:36:25 字數 1821 閱讀 7510

nsuserdefaults適合儲存輕量級的本地資料儲存,比如儲存登陸介面的使用者名稱、密碼之類的資料,並使之本地持久化。

nsuserdefaults支援的資料格式有:nsnumber(integer、float、double),nsstring,nsdate,nsarray,nsdictionary,bool型別。

[nsuserdefaults standarduserdefaults]是系統提供的單例方法。

一般通過[[nsuserdefaults standarduserdefaults]setobject:forkey:]來儲存資料。

通過[[nsuserdefaults standarduserdefaults] objectforkey:]來獲取已存資料。

每次儲存資料後用[[nsuserdefaults standarduserdefaults] synchronize]方法持久化資料,直接同步到檔案裡。 nsuserdefaults儲存方式跟字典類似,事實上,nsuserdefaults就是乙個plist檔案,它的資料都儲存在應用程式內建的乙個plist檔案裡。

例:

nsdictionary *userinfodic = [nsdictionary dictionary];

[userinfodic setobject:@"admin"

forkey:@"username"];

[userinfodic setobject:@"123456"

forkey:@"password"];

[[nsuserdefaults standarduserdefaults] setobject:userinfodic forkey:@"userinformation"];

//持久化資料,直接同步到檔案裡

[[nsuserdefaults standarduserdefaults] synchronize];

但是nsuserdefaults不能儲存自定義的類物件,若把乙個物件儲存到nsuserdefaults會報錯。聰明的人會把物件放進陣列,再把陣列存入nsuserdefaults,不過這樣做也是錯誤的,因為陣列中包含了自定義物件。 若要在nsuserdefaults中存入自定義物件,則物件需要遵循nscoding協議,並實現encodewithcoder方法和initwithcoder方法。

還有要注意的一點是:型別為nsnull的空資料也是無法存入nsuserdefaults的。若資料中有nsnull型別空資料,把它置nil@""即可存入nsuserdefaults,否則程式會崩潰。

如果要儲存的nsdictionary裡面有nsnull物件,可以使用遍歷方法將nsnull物件轉為@""物件再次儲存,下面是乙個簡單的處理方法:

對基類nsdictionary新增category,即下面的公有方法,使用nsdictionary的物件即可呼叫該方法:

- (nsdictionary *)safedictionarywithdic:(nsdictionary *)dic

}];return [[nsdictionary alloc] initwithdictionary:mutabledic];

}

總結:nsuserdefaults是乙個輕量級的資料庫,使用起來還是很方便的!

ios NSUserDefaults使用注意事項

nsuserdefaults適合儲存輕量級的資料,他不僅可以儲存基本資料型別,還可以儲存nsnumber integer float double nsstring,nsdate,nsarray,nsdictionary,bool型別。nsuserdefaults standarduserdefau...

iOS NSUserDefaults使用報錯問題

在使用nsuserdefaults的時候插入資料有時候會報以下錯誤 list object new msg 1 usr id 2 usr name usr tx for key newmsgarraydict 這種錯誤的原因是插入了不識別的資料型別,nsuserdefaults支援的資料型別有 ns...

Javascript cssText基本使用指北

一 csstext之起步 那些年,我們是這樣設定樣式的 style.width 233px style.position fixed style.left 233px 現如今,我們可以這樣搞 style.csstext width 233px height 233px position fixed ...