建立乙個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...