iOS数据持久化(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 = [NSArrayarrayWithObjects:self.theAccountTextField.text,self.thePasswordTextField.text,
nil];

                [plistArr writeToFile:_jyzPlistatomically:YES];




//读取Plist

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

        NSString *plistpath = [paths
objectAtIndex:0];

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

        NSArray *stateArr = [NSArrayarrayWithContentsOfFile:statePlist];


 

人已赞赏
iOS文章

iOS模态视图从第N个视图返回到第一个视图

2020-3-30 15:03:02

iOS文章

iOS自定义按钮拓展类,实现对按钮中图片和文字的任意布局

2020-3-30 16:18:06

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索