首页 > 代码库 > NSUserDefaults简单使用
NSUserDefaults简单使用
NSUserDefaults是Cocoa提供的默认应用程序状态(用户数据)保持接口。他提供了简化的plist文件持久化方法。通过NSUserDefaults类,你可以把用户首选项保存到plist文件中。当应用程序结束,这些数据仍然存在,并可在应用程序启动时,再次把上次运行的状态显示在应用程序中,本地化国际化可以使用此方式保存字符串。
提示:NSUserDefaults把plist文件存储在沙盒中的Library/Preferences目录下。这个plist文件一直存在,知道你删除应用程序。
1.获取UserDefaults
要想获取一个NSUserDefaults实例,最简单的方法是获取一个应用程序共享实例(单例):
+ (NSUserDefaults *)standardUserDefaults
如果不想使用共享的User Defaults对象,可以在alloc之后实例化自己的NSUserDefaults:
- (id)init
- initWithUser: (NSString *)username
前者使用当前用户账号实例化NSUserDefaults,后者可以用某个指定的用户账号实例化NSUserDefaults(这个方法在ios中无效,因为它需要用户以superuser来运行应用程序)。
2.在User Defaults中保存值
在Defaults中保存值,需要調用setX:forKey:方法。Defaults实际上仍然是一个plist文件,每个值都有一个唯一的key,对值的存取是根据key来进行的。setX中的X是值的类型,如BOOL、Float、Integer等,总共有6个setX:forKey:方法:
- setBool:forKey:
- setFloat:forKey:
- setInteger:forKey:
- setObject:forKey:
- setDouble:forKey:
- setURL:forKey:
3.删除User Defaults值
删除值使用如下命令:
- removeObjectForKey:
4.读取User Defaults值
读取存放在User Defaults对象中的值,使用xForKey方法,xForKey方法中的x是值的类型:
- arrayForKey:
- boolForKey:
- dataForKey:
- dictionaryForKey:
- floatForKey:
- integerForKey:
- objectForKey:
- stringarrayForKey:
- stringForKey:
- doubleForKey:
- URLForKey:
5.USer Defaults使用示例
-(IBAction)buttonClick{
[tf resignFirstResponder];//释放键盘 放弃第一响应者
NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];//通过standardUserDefaults获取共享的NSUserDefaults对象
[defaults setObject:tf.text forKey:@"words"];//将用户输入的文本保存到NSUserDefault对象
[defaults synchronize];//synchronize方法手动将NSUserDefaults对象的改变保存到defaults数据库。
exit(0);//退出整个程序
}
我们在viewDidLoad方法中,我们将default数据库中的数据取出:
- (void)viewDidLoad
{
//通过standardUserDefaults获取共享的NSUserDefaults对象
NSUserDefaults* defaults=[NSUserDefaults standardUserDefaults];
//从NSUserDefaults中读取key为words的对象,取出上次保存的字符串,并赋给NSString。
NSString *words=[defaults stringForKey:@"words"];
NSLog(@"words:%@",words);
//用NSString设置TestField的text属性
tf.text=words;
[super viewDidLoad];
}
NSUserDefaults简单使用