首页 > 代码库 > 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简单使用