NSUserDefault 是什么?
个人理解使用户保存一些用户习惯,用于轻量级数据的持久话,比如用户登录名,密码之类。这些信息会以plist文件的形式保存下来。对于ios这部分数据可能保存在app沙盒目录下,但是在Mac平台下,这部分数据保存在用户目录下的:“~/资源库/Preferences/”以app的bunld ID为文件名的plist文件。
可以保存那些数据?
NSUserDefaults单例以key-value的形式存储了一系列偏好设置,key是名称,value是相应的数据。存/取数据时可以使用方法objectForKey:和setObject:forKey:来把对象存储到相应的plist文件中,或者读取,既然是plist文件,那么对象的类型则必须是plist文件可以存储的类型:
NSData, NSString, NSNumber, NSDate, NSArray, NSDictionary
比如存/读一个整数、字符串和一张图片:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@”Duke-Pang“ forKey:@"userName"];
[defaults setInteger:10 forKey:@"Age"];
UIImage *image =[UIImage imageNamed:@"somename"];
NSData *imageData = UIImageJPEGRepresentation(image, 100);//把image归档为NSData
[defaults setObject:imageData forKey:@"image"];
[defaults synchronize];
如何删除?
1. 代码删除单个
NSUserDefaults *userDefatluts = [NSUserDefaults standardUserDefaults];
[userDefaults removeObjectForKey:@"userName"];
[userDefaults synchronize];
2. 代码清除所有
NSString *appDomain =[[NSBundle mainBundle]bundleIdentifier];
[[NSUserDefaults standardUserDefaults]removePersistentDomainForName:appDomain];
3. 手动删除plist文件
删除“~/资源库/Preferences/bundle ID.plist”, 这个时候电脑需要重启。
简单介绍就说这些吧,其他使用方式,网上一搜一大把。