数据持久化(NSUserDefault、Plist)

一:NSUserDefault(存放在tmp文件里,临时的,每次重新启动该文件里的数据会全部清空)

创建一个user defaults方法有多个,最简单得快速创建方法:
   NSUserDefaults *accountDefaults = [NSUserDefaults standardUserDefaults];

添加数据到 user defaults:
   [accountDefaults setObject:nameField.text forKey:UserDefaultNameKey];
也可以添加基本数据类型int, float, bool等,有相应得方法

   [accountDefaults setBool:YES forKey:UserDefaultBoolKey];
    [accountDefaults synchronize];  //强制性立刻保存到disk,以防读取的时候数据还没保存成功

从user defaults中获取数据:

   [accountDefaults objectForKey:NCUserDefaultNameKey]

  
 [accountDefaults boolForKey: UserDefaultBoolKey];

要点: NSUserDefaults非常好用,并不需要用户在程序中设置NSUserDefaults的全局变量,需要在哪里使用NSUserDefaults的数据,那么就在哪里创建一个NSUserDefaults对象,然后进行读或者写操作。
     针对同一个关键字对应的对象或者数据,可以对它进行重写,重写之后关键字就对应新的对象或者数据,旧的对象或者数据会被自动清理。

但是并不是所有的东西都能往里放的。NSUserDefaults只支持: NSString, NSNumber, NSDate, NSArray, NSDictionary.

如果把一个自定义的类存到一个NSArray里,然后再存到NSUserDefaults里也是不能成功的。



二:Plist

//创建plist文件

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

    NSString *plistpath = [paths objectAtIndex:0];

    _jyzPlist   = [plistpath stringByAppendingPathComponent:@"testPlist.plist"];


//写入内容

                NSArray *plistArr = [NSArray arrayWithObjects:self.theAccountTextField.text,self.thePasswordTextField.text, nil];

                [plistArr writeToFile:_jyzPlist atomically:YES];


//读取Plist

        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

        NSString *plistpath = [paths objectAtIndex:0];

        NSString *statePlist = [plistpath stringByAppendingPathComponent:@"statePlist.plist"];

        NSArray *stateArr = [NSArray arrayWithContentsOfFile:statePlist];



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值