zoukankan      html  css  js  c++  java
  • NSUserDefaults存储数据

    1.用处:NSUserDefaults用来存储类似用户的配置、程序设置信息等这些的数据

    iOS下可以使用NSUserDefault、NSKeyedArchiver、sqlite、CoreData几种常用的方式来存储数据,其中NSUserDefaults用来存储类似用户的配置等这些的数据,后两者用户存储大批量和比较复杂的数据。

    NSUserDefault 基本上支持所有的原生数据类型NSString、 NSNumber、NSDate、 NSArray、NSDictionary、BOOL、NSInteger、NSFloat等等。如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储。

    2.用法:

    NSUserDefault的使用比较简单:

    A类页面:

    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

    [userDefault setObject:@“北京” forKey:LASTCITY];

    [userDefault synchronize];

    B类页面:

     

    NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];

    NSString *lastCity = [userDefault objectForKey:LASTCITY];

    3.细节用法:

     

    如果要存放自定义的对象(如自定义的类对象),则必须将其转换成NSData存储:

    [cpp] 

      1. NSArray *arr = [[NSArray alloc] initWithObjects:@arr1, @arr2, nil]
      2. [mySettingData setObject:arr forKey:@arrItem];
      3. [mySettingData setObject:@admin forKey:@user_name];
      4. [mySettingData setBOOL:@YES forKey:@auto_login];
      5. [mySettingData setInteger:1 forKey:@count];
        往NSUserDefaults添加数据后,它们就变成了全局的变量,App中即可读写NSUserDefault中的数据: [cpp]
        1. NSUserDefaults *mySettingDataR = [NSUserDefaults standardUserDefaults];
        2. NSLog(@arrItem=%@, [mySettingDataR objectForKey:@arrItem]);
        3. NSLog(@user_name=%@, [mySettingDataR objectForKey:@user_name]);
        4. NSLog(@count=%d, [mySettingDataR integerForKey:@count]);

          如果想删除某个数据项,可以使用removeObjectForKey删除数据:

          [cpp]
          1. [mySettingData removeObjectForKey:@arrItem]; 需要注意的是,NSUserDefaults是定时把缓存中的数据写入磁盘的,而不是即时写入,为了防止在写完NSUserDefaults后程序退出导致的数据丢失,可以在写入数据后使用synchronize强制立即将数据写入磁盘: [cpp]
            1. [mySettingData synchronize]; 运行上面的语句后,NSUserDefaults中的数据即被写入到.plist文件中,如果是在模拟器上运行程序,可以在Mac的/Users/YOUR-USERNAME/Library/Application Support/iPhone Simulator/4.1/Applications/YOUR-APP-DIR/Library/Prefereces目录下面找到一个文件名为YOUR-Bundle_Identifier.plist的plist文件,用Xcode打开该文件,可以看到刚才写入的数据。

              4、针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

  • 相关阅读:
    Pandas提取数据存入excel
    获取页面元素二
    selenium如何解决IE自动填充表单问题
    IE浏览器相关的问题及解决方案
    TestNG入门教程(TestNG介绍、在Eclipse中安装TESTNG、测试小例子、基本注解、如何执行测试、按顺序执行Case、异常测试、组合测试、参数化测试、忽略测试、依赖测试、测试结果报告)
    selenium Webdriver 处理 —— 通过时间控件给文本框赋值
    列表翻页,选中目标记录
    bug统计
    在eclipse中安装TestNG
    selenium搭建、运行
  • 原文地址:https://www.cnblogs.com/huangh/p/4075552.html
Copyright © 2011-2022 走看看