1.用處:NSUserDefaults用來存儲(chǔ)類似用戶的配置、程序設(shè)置信息等這些的數(shù)據(jù)
iOS下可以使用NSUserDefault、NSKeyedArchiver、sqlite、CoreData幾種常用的方式來存儲(chǔ)數(shù)據(jù),其中NSUserDefaults用來存儲(chǔ)類似用戶的配置等這些的數(shù)據(jù),后兩者用戶存儲(chǔ)大批量和比較復(fù)雜的數(shù)據(jù)。
NSUserDefault 基本上支持所有的原生數(shù)據(jù)類型NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等等。如果要存放自定義的對象(如自定義的類對象),則必須將其轉(zhuǎn)換成NSData存儲(chǔ)。
2.用法:
NSUserDefault的使用比較簡單:
A類頁面:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
[userDefault setObject:@“北京” forKey:LASTCITY];
[userDefault synchronize];
B類頁面:
NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSString *lastCity = [userDefault objectForKey:LASTCITY];
3.細(xì)節(jié)用法:
如果要存放自定義的對象(如自定義的類對象),則必須將其轉(zhuǎn)換成NSData存儲(chǔ):
如果想刪除某個(gè)數(shù)據(jù)項(xiàng),可以使用removeObjectForKey刪除數(shù)據(jù):
需要注意的是,NSUserDefaults是定時(shí)把緩存中的數(shù)據(jù)寫入磁盤的,而不是即時(shí)寫入,為了防止在寫完NSUserDefaults后程序退出導(dǎo)致的數(shù)據(jù)丟失,可以在寫入數(shù)據(jù)后使用synchronize強(qiáng)制立即將數(shù)據(jù)寫入磁盤:
4、針對同一個(gè)關(guān)鍵字對應(yīng)的對象或者數(shù)據(jù),可以對它進(jìn)行重寫,重寫之后關(guān)鍵字就對應(yīng)新的對象或者數(shù)據(jù),舊的對象或者數(shù)據(jù)會(huì)被自動(dòng)清理。