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