iOS 本地数据持久化 中UserDefault的使用

   一般来说iOS中存取本地数据又三种方式:UserDefault, 数据库(FMDB,coredata5.sqlist等),文件。 这里数一下最简单易用的UserDefault. 
   之所以简单易用是因为UserDefault 使用不需要过多的引用和设置。最简原则:在哪里储存,在哪里创建。 在哪里使用,在哪里读取。
   大多的app 我们会对用户的账号密码等简单信息进行保存,下次运行程序本地取到这些信息直接去验证成功后自动登录就可以。 
   首先在首次登录成功的地方创建UserDefault;
        NSDictionary * userInfo = [dictResult objectForKey:@"userInfo"];
        //快速创建
        [[NSUserDefaults standardUserDefaults] setObject:userInfo forKey:@"userLoginInfo"];

        //储存密码
        [[NSUserDefaults standardUserDefaults]setObject:self.textFieldPassword.text forKey:@"password"];
        //储存账户
        [[NSUserDefaults standardUserDefaults ]setObject:self.textFieldUserName.text forKey:@"userName"];
        //必须
        [[NSUserDefaults standardUserDefaults]synchronize];

这里可以看到数据的写入类似字典一样键–值对应的写入、这里注意必须执行[[NSUserDefaults standardUserDefaults] synchronize];才是理解写入磁盘,否则在重启后里面的信息是取不到的。

NSUserDefaults类提供了非常方便的方法来获取常用的类型,我们可以存储 NSData,NSString,NSNUmber,NSDate,NSArray,NSDictionary(目前有五种类型)这些实例。如果你想存储其他类型的对象,你要将其归档并创建一个NSData来实现存储。

对于内容的删除也是通过key 去执行
[[NSUserDefaults standardUserDefaults] removeObjectForKey:key];
[[NSUserDefaults standardUserDefaults] synchronize];

下面就是在适当的时候对数据进行读取:下面只是写的一个简单事例

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //本地有信息则直接登录
    memberMan = [[MemberManager alloc]init];
    memberMan.delegate = self;
    //创建
    NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
   // 读取账户
    NSString * name = [userDefaults objectForKey:@"userName"];
    //读取密码
    NSString * password = [userDefaults objectForKey:@"password"];
    NSMutableDictionary *dict  = [NSMutableDictionary dictionary];
    //这里判空避免拿不到数据 崩溃
    if (name != nil && password != nil) {
        [dict setObject:name forKey:@"phone"];
        [dict setObject:password forKey:@"password"];
        [memberMan loginIn:dict];//调登录借口
    }
 }

可以看出来存得时候类似字典 取得时候也对应的去取就可以了。
* 这里记得 对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值