使用NSUserDefaults儲存使用者名稱和密碼

2021-06-28 08:50:59 字數 2849 閱讀 4545

建立乙個user defaults方法有多個,最簡單得快速建立方法:

nsuserdefaults *accountdefaults = [nsuserdefaults standarduserdefaults];

新增資料到 user defaults:

[accountdefaults setobject:namefield.text forkey:userdefaultnamekey];

也可以新增基本資料型別int, float, bool等,有相應得方法

[accountdefaults setbool:yes forkey:userdefaultboolkey];

從user defaults中獲取資料:

[accountdefaults objectforkey:ncuserdefaultnamekey]

[accountdefaults boolforkey: userdefaultboolkey];

今天用到nsuserdefault的時候,一直以為[[nsuserdefaults standarduserdefaults] setobject:array forkey:@"testinfo"] ;就算儲存好了,再[[nsuserdefaults standarduserdefaults] arrayforkey:@"testinfo"]就算取出來,可是發現重啟動程式,關鍵字testinfo對應的竟然是空,仔細查下資料,發現自己太大意了,忘了寫到disk裡面了![[nsuserdefaults standarduserdefaults] synchronize]; 漲學問了又。。。呵呵!!!!

下面貼出**:

nsuserdefaults *defaults = [nsuserdefaults standarduserdefaults];

[defaults setobject:@"111" forkey:@"mytest"];

[defaults synchronize];

nsstring *teststr = [defaults objectforkey:@"mytest"];

nslog(@"teststr is: %@",teststr);

注意問題:

通過檢視官方文件。userdefaults不是立即寫入,而是根據時間戳定時的把快取中的資料寫入本地磁碟。所以呼叫了set方法之後資料有可能還沒有寫入磁碟應用程式就終止了。出現以上問題。可以通過呼叫synchornize方法強制寫入。

要點:1)nsuserdefaults非常好用,並不需要使用者在程式中設定nsuserdefaults的全域性變數,需要在**使用nsuserdefaults的資料,那麼就在**建立乙個nsuserdefaults物件,然後進行讀或者寫操作。

2)針對同乙個關鍵字對應的物件或者資料,可以對它進行重寫,重寫之後關鍵字就對應新的物件或者資料,舊的物件或者資料會被自動清理。

- (void)defaultcheck:(id)sender

else

}- (void)loadview

else

namefield.borderstyle = uitextborderstylebezel;

[pwdfield setborderstyle:uitextborderstyleroundedrect];

[self.view addsubview:namefield];

[self.view addsubview:pwdfield];

uibutton * loginbtn = [uibutton buttonwithtype:uibuttontyperoundedrect];

[loginbtn setframe:cgrectmake(0, 0, 50, 30)];

[loginbtn setcenter:cgpointmake(200, 200)];

[loginbtn addtarget:self action:@selector(logintoweibo:) forcontrolevents:uicontroleventtouchupinside];

[self.view addsubview:loginbtn];

uibutton * checkbtn = [uibutton buttonwithtype:uibuttontyperoundedrect];

[checkbtn setframe:cgrectmake(0, 0, 20, 20)];

[checkbtn setcenter:cgpointmake(160, 180)];

//選中之後得圖示

[checkbtn setbackgroundimage:[uiimage imagenamed:@"lock.png"] forstate:(uicontrolstate)uicontrolstatehighlighted];

[checkbtn setbackgroundimage:[uiimage imagenamed:@"lock.png"] forstate:(uicontrolstate)uicontrolstateselected];

//未選中

[checkbtn setbackgroundimage:[uiimage imagenamed:@"unlock.png"] forstate:(uicontrolstate)uicontrolstatenormal];

[checkbtn addtarget:self action:@selector(defaultcheck:) forcontrolevents:uicontroleventtouchupinside];

//使用者名稱和密碼已經儲存

if([accountdefaults boolforkey:ncuserdefaultboolforregister] == yes) 

[self.view addsubview:btn];

}

iOS開發基礎 NSUserDefaults

nsuserdefaults 是乙個單例 用來儲存小型資料 儲存到本地 在本地生成了乙個plist檔案,然後把資料寫到了plist檔案裡 nsuserdefaults user nsuserdefaults standarduserdefaults 把資料儲存到本地 需要設定乙個key值 user ...

iOS 偏好設定 NSUserDefault

nsuserdefaults類提供了乙個與系統進行互動的程式設計介面,用來儲存 恢復應用程式的偏好設定和配置資料等,適合儲存輕量級的本地資料。比如儲存乙個登陸介面的資料,例如使用者名稱 密碼之類的。如果使用plist檔案儲存,那麼就要自己建立檔案,讀取檔案,很麻煩。同時nsuserdefaults的...

IOS資料儲存 NSUserDefaults

1,nsuserdefaults可以儲存某些資訊在本地,小資料連同大資料一起操作,經常訪問的弄一起,所以儲存一些較輕量級的資料,比如使用者名稱等等。2,nsuserdefaults是單執行緒,是單例模式 3,nsuserdefaults存放於乙個plist檔案中,程式退出後資料並不會被清除 nsus...