IOS 偏好设置数据 存 取(Preferences文件夹)

 很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设 置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能

每个应用都有个NSUserDefaults实例,通过它来存取偏好设置

比如,保存用户名、字体大小、是否自动登录 

注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中 的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程序 就终止了。出现以上问题,可以通过调用synchornize方法强制写入[defaults synchornize]; 

 

/**
 *
 *存储数据
 */
- (IBAction)saveBtn:(id)sender {
    // 偏好设置是专门用来保存应用程序的配置信息的, 一般情况不要再偏好设置中保存其他数据
    // 如果利用系统的偏好设置来存储数据, 默认就是存储在Preferences文件夹下面的
    // 偏好设置会将所有的数据保存到同一个文件中
    
    // 获取NSUserDefaults对象
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // 保存数据(如果设置数据之后没有同步, 会在将来某一时间点自动将数据保存到Preferences文件夹下面)
    [defaults setObject:@"lnj" forKey:@"name"];
    [defaults setObject:@"man" forKey:@"gender"];
    [defaults setInteger:13 forKey:@"age"];
    [defaults setDouble:10.1 forKey:@"height"];
    
    // 让NSUserDefaults立刻保存数据
    [defaults synchronize];

}

/**
 *读取数据
 *
 */
- (IBAction)readBtn:(id)sender {
    
    // 1.获取NSUserDefaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // 2.通过NSUserDefaults获取保存的数据
    NSString *name = [defaults objectForKey:@"name"];
    int age = [defaults integerForKey:@"age"];
    NSLog(@"%@", name);
    NSLog(@"%d", age);
}

 

posted on 2017-03-09 22:14  守望星空  阅读(467)  评论(0编辑  收藏  举报

导航