本地存儲(chǔ)數(shù)據(jù)簡單的說有三種方式:數(shù)據(jù)庫、NSUserDefaults和文件。
NSUserDefaults用于存儲(chǔ)數(shù)據(jù)量小的數(shù)據(jù)减俏,例如用戶配置。并不是所有的東西都能往里放的碱工,只支持:NSString,NSNumber, NSDate, NSArray, NSDictionary娃承,詳細(xì)方法可以查看類文件奏夫。
NSUserDefaultsstandardUserDefaults用來記錄一下永久保留的數(shù)據(jù)非常方便,不需要讀寫文件历筝,而是保留到一個(gè)NSDictionary字典里酗昼,由系統(tǒng)保存到文件里,系統(tǒng)會(huì)保存到該應(yīng)用下的/Library/Preferences/gongcheng.plist文件中梳猪。需要注意的是如果程序意外退出麻削,NSUserDefaultsstandardUserDefaults數(shù)據(jù)不會(huì)被系統(tǒng)寫入到該文件,不過可以使用[[NSUserDefaultsstandardUserDefaults] synchronize]命令直接同步到文件里舔示,來避免數(shù)據(jù)的丟失碟婆。
一、將數(shù)據(jù)存儲(chǔ)到NSUserDefaults:
//UISwitch
- (IBAction)switchChanged:(id)sender{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setBool:_theSwitch.on forKey:@"switchValue"];
}
//UITextField
- (IBAction)inputChanged:(id)sender{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:_textField.text forKey:@"inputValue"];
}
二惕稻、讀取NSUserDefaults中的數(shù)據(jù):
//UISwitchNSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];BOOL sw = [userDefaults boolForKey:@"switchValue"];[_theSwitch setOn:sw];//UITextFieldNSString *str = [userDefaults stringForKey:@"inputValue"];[_textField setText:str];
registerDefaults:方法是注冊偏好設(shè)置的子集竖共,它是不寫入到plist文件中的,但在ND中取確實(shí)能取到俺祠。
也就是說plist文件中看到的數(shù)據(jù)是你顯示的設(shè)置進(jìn)去的公给。
比如調(diào)用setxxx方法