NSUserDefaults适合存储轻量级的本地数据,如登陆界面的数据,用户名、密码等用户偏好设置类的数据。下次启动应用的时候就可以直接从NSUserDefaults里面读取上次运行的数据。
如果使用自己建立的plist文件什么的,需要自己显式创建文件,读取文件,很麻烦,而如果用NSUserDefaults则不用管这些,就像读字典一样,直接读取数据就可以了,同时NSUserDefaults有缓存机制,可以避免频繁读写文件。
NSUserDefaults支持的数据格式有:NSNumber(BOOL、Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,NSData类型。
另外,NSUserDefaults不能存储可变(mutable)类型,只能存储不可变类型
NSUserDefaults很方便,读取也很容易
添加字段:
//添加preference
[[NSUserDefaults standardUserDefaults] setObject:@"value1" forKey:@"key1"];
[[NSUserDefaults standardUserDefaults] synchronize];
修改字段(即对相同的key,设置不同的值即可):
//添加preference
[[NSUserDefaults standardUserDefaults] setObject:@"value2" forKey:@"key1"];
[[NSUserDefaults standardUserDefaults] synchronize];
删除字段:
//删除preference
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"key1 "];
[[NSUserDefaults standardUserDefaults] synchronize];
逐个删除字段很麻烦,还可以一次性删除所有字段:
//删除所有preference
NSString *appDomainStr = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomainStr];