zoukankan      html  css  js  c++  java
  • iOS: 偏好设置的详解和使用

    偏好设置的详解:

    用途:主要用来存储用户系统的设备信息,但有的时候也可以在程序的任何地方用来存储数据,作为全局数据来访问,例如视图切换需要进行登录时。

    偏好设置的写入:
    •很多iOS应用都支持偏好设置,比如保存用户名、密码、字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能
    •每个应用都有个NSUserDefaults实例,它是一个单例对象,通过它来存取偏好设置,设置信息都是键值对的形式。
    •例如:保存用户名、字体大小、是否自动登录

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    [defaults setObject:@"itcast.cn" forKey:@"userName"];

    [defaults setFloat:18.0f forKey:@"fontSize"];

    [defaults setBool:YES forKey:@"autoLogin"];

    偏好设置的读取:

    // 读取系统偏好

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    NSString *userName = [defaults objectForKey:@"userName"];

    float fontSize = [defaults floatForKey:@"fontSize"];

    BOOL autoLogin = [defaults boolForKey:@"autoLogin"];

    注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘,应用程序就终止了。

    出现以上问题,可以通过调用synchornize同步方法强制写入:

    [defaults synchronize];

    偏好设置的使用:

    1.设置用户登录信息(偏好设置)

        NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 

        [userDefaults setObject:@"admin" forKey:@"userName"];     //登录用户名

        [userDefaults setObject:[NSDate date] forKey:@"loginDate"];      //登录时间

        [userDefaults setInteger:2 forKey:@"times"];              //登录次数

    2.将设置的用户信息强制保存到磁盘沙盒目录下的preference文件中

        [userDefaults synchronize];

    3.读取偏好设置

      NSUserDefaults *userDefaluts = [NSUserDefaults standardUserDefaults];    

        NSString *userName = [userDefaluts objectForKey:@"userName"];

        NSDate *date = [userDefaluts objectForKey:@"loginDate"];

        NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];

        dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

        NSInteger times = [userDefaluts integerForKey:@"times"];

        NSLog(@"userName:%@,date:%@,times:%ld",userName,[dateFormatter stringFromDate:date],times);

    演示结果:

    2015-09-20 10:18:33.529 02-用户偏好设置[601:20685] userName:admin,date:2015-09-20 10:18:33,times:2
  • 相关阅读:
    学习笔记-Bootstrap
    学习笔记-JavaScript
    学习笔记-HTML
    学习笔记-数据库操作
    学习笔记-MATLAB
    学习笔记-mysql基本操作
    学习笔记-Java进阶
    学习笔记-Java入门
    学习笔记-考研英语
    学习笔记-线代
  • 原文地址:https://www.cnblogs.com/XYQ-208910/p/4822954.html
Copyright © 2011-2022 走看看