zoukankan      html  css  js  c++  java
  • NSUserDefaults简介及使用

    用户轻量级的数据持久化,主要用于保存用户程序的配置等信息,以便下次启动程序后能恢复上次的设置。

    该数据实际上是以“键值对”形式保存的(类似于NSDictionary),因此我们需要通过key来读取或者保存数据(value)。
    具体使用如下:
    1、获取一个NSUserDefaults引用:

    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];

    2、保存数据

    [userDefaults setInteger:1 forKey:@"segment"];

    [userDefaults synchronize];

    3、读取数据

    int i = [userDefaults integerForKey:@"segment"];

    4、其他数据的存取

    The NSUserDefaults class provides convenience methods for accessing common types such as floats, doubles, integers, Booleans, and URLs. A default object must be a property list, that is, an instance of (or for collections a combination of instances of): NSData,NSStringNSNumberNSDateNSArray, or NSDictionary. If you want to store any other type of object, you should typically archive it to create an instance of NSData

    保存数据:

     

    NSData *objColor = [NSKeyedArchiver archivedDataWithRootObject:[UIColor redColor]];

    [[NSUserDefaults standardUserDefaults]setObject:objColor forKey:@"myColor"];

    读取数据:

     

    NSData *objColor = [[NSUserDefaults standardUserDefaults]objectForKey:@"myColor"];

     

    UIColor *myColor = [NSKeyedUnarchiver unarchiveObjectWithData:objColor];

    5、应用实例

    -(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    {

    ......

     

    [cellSwitch setTag:indexPath.row];

    [cellSwitch addTarget:self action:@selector(SwitchAction:) forControlEvents:UIControlEventValueChanged];

    //retrieving cell switch value

    NSUserDefaults *switchV = [NSUserDefaults standardUserDefaults];

    int i= indexPath.row;

    NSString *str = [[NSString alloc]initWithFormat:@"switch%d",i];

    cellSwitch.on = ([switchV integerForKey:str]==1)?YES:NO;

     

    ......

     

     return cell;

    }

     

    -(void)SwitchAction:(id)sender

    {

    int i= [sender tag];

    NSString *str = [[NSString alloc]initWithFormat:@"switch%d",i];

    // save cell switch value

    NSUserDefaults *switchV = [NSUserDefaults standardUserDefaults];

    isOnOff = ([sender isOn] == 1)?1:0;

    [switchV setInteger:isOnOff forKey:str];

     [switchV synchronize]; //调用synchronize函数将立即更新这些默认值。

      [str release];

     

     

  • 相关阅读:
    Spring Boot学习笔记
    打造高效率的软件测试
    如何将测试结果在jenkins上发布
    如何在docker container中运行web自动化测试
    Jmeter中随机读取测试文件的内容
    如何提高UI自动化测试的质量
    mac系统上添加定时任务
    keypass口令管理实践
    GPG实践
    树的遍历
  • 原文地址:https://www.cnblogs.com/ejllen/p/3790897.html
Copyright © 2011-2022 走看看