zoukankan      html  css  js  c++  java
  • 【IOS】ios中NSUserDefault与android中的SharedPreference用法简单对比

    以下内容为原创,欢迎转载,转载请注明

    来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3405308.html

    有Android开发经验的朋友对SharedPreference的用法应该比较亲切的吧,它一般用来保存和读取用户的设置参数,比如保存用户名、加密后的登录密码,是否选择了自动登录,应用选择了哪一套主题皮肤等用户配置信息,使用也非常简单,put/get就能保存/读取这个配置文件,这个文件是用xml形式保存在应用的目录下面

    在ios中,也有这么一个类似的工具——NSUserDefault,它支持的数据格式有:NSNumber(Integer、Float、Double),NSString,NSDate,NSArray,NSDictionary,BOOL类型。它是存储在/Library/Prefereces里面,有个plist文件。

    下面,我们写一个demo来测试下:

    界面很简单,两个button,一个label

    点击第一个button用来保存数据,点击第二个button用来显示数据到label

    代码如下:

     1 - (IBAction)buttonClicked:(id)sender {
     2     switch ([sender tag]) {
     3         case 1: // 保存数据
     4             [self saveData];
     5             break;
     6         case 2: // 显示数据
     7             [self showData];
     8             break;
     9             
    10         default:
    11             break;
    12     }
    13 }
    14 
    15 
    16 - (void)saveData
    17 {
    18     NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    19     
    20     [userDef setObject:@"wangjie" forKey:@"name"];
    21     [userDef setInteger:23 forKey:@"age"];
    22     [userDef setBool:YES forKey:@"isAutoLogin"];
    23     [userDef setDouble:115.0 forKey:@"weight"];
    24     [userDef setFloat:171.2 forKey:@"height"];
    25     
    26     [userDef synchronize];
    27     NSLog(@"save success!");
    28 }
    29 
    30 - (void)showData
    31 {
    32     NSUserDefaults *userDef = [NSUserDefaults standardUserDefaults];
    33     NSString *content = [NSString stringWithFormat:@"name: %@; age: %d; isAutoLogin: %hhd; weight: %f; height: %f",
    34                          [userDef stringForKey:@"name"],
    35                          [userDef integerForKey:@"age"],    
    36                          [userDef boolForKey:@"isAutoLogin"],
    37                          [userDef doubleForKey:@"weight"],
    38                          [userDef floatForKey:@"height"]
    39                          ];
    40     
    41     [[self showLb] setText:content];
    42     NSLog(@"%@", [[self showLb] text]);
    43 }

    一:启动应用程序后直接点击第二个button,因为数据之前没有被保存,所以显示的数据都是默认的数据:

    二:点击第一个button(数据会被插入),再点击第二个button(已有数据可以显示),此时情况如下:

  • 相关阅读:
    用户体验的时间尺度
    ibatis的xml中的dtd问题
    ASP.NET AJAX调用服务
    C#打包安装与卸载
    学习 WCF (6)学习调用WCF服务的各种方法
    C#.NET ActiveX控件的制作
    如何使用C#开发“类ActiveX组件”
    Asp.Net框架下WebService和Remoting的区别
    今天打开网站,突然发现sql 2005出现错误:数据库 'mybase_db' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
    VS部署中的ProductCode问题
  • 原文地址:https://www.cnblogs.com/tiantianbyconan/p/3405308.html
Copyright © 2011-2022 走看看