• 【字典数组NSDictionary和NSMutableDictionary的持久化 Objective-C语言】


    一、NSMutableDictionary字典数组的持久化

    1.例如,我这儿有一个字典数组

    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjectsAndKeys:@“jack”,@“name”,@“18”,@“age”,nil];

    [dict setObject:@“广州市XX街道” forKey:@“address”];

    [dict setObject:@“171.1” forKey:@“height”];

    这里面是不是有4对数据啊,

    同样的原理啊,这4对数据,在程序运行的时候,是不是存在内存里面去了啊,

    我想把它存到硬盘里面,怎么办,

    我们之前NSArray,是不是可以把NSArray数组的信息,存到plist文件里面去啊,

    那咱么这个Dictionary能不能也存到plist文件里面去呢,可以,一样的原理啊,

    Dictionary有个方法,叫做writeToFile

    [dict writeToFile:(nonnull NSString *) atomically:(BOOL)];

    好,给一个路径,@“/Users/Apple/Desktop/dict.plist”

    记住,文件后缀名,需要是plist,

    atomically,来个NO,不使用临时文件先存,如果成功后,再移动到指定目录,

    好,打印一句话吧,NSLog(@“存储成功”);

    输出:存储成功

    打开dict.plist文件看一下

    好,各位看清楚啊,Root,根,Dictionary,

    这个时候,我整个plist文件保存的是什么,Type,是Dictionary,是不是是个字典啊,

    这个字典里面是不是有键值对啊,有几个键值对啊,4 items,4个

    有哪4个,展开:

    address : 广州市XX街道

    age : 18

    height : 171.1

    name : jack

    第一个,键是什么,address,值是什么,广州市XX街道,这个值是什么类型的,String类型的,

    这个时候,我就把NSDictionary中的数据,存起来了,

    二、存进去之后,我把它读回来,还原回来,能不能还原回来

    1.可以,用dictionaryWithContentsOfFile,这个方法,这是一个类方法,

    [NSDictionary dictionaryWithContentsOfFile:(nonnull NSString *)];

    好,我用一个NSDictionary类型的指针接一下,

    NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:@“/Users/Apple/Desktop/dict.plist”];

    NSLog(@“%@”,dict);

    输出:address = “\U5e7f\U5dde\U5e02XX\U63a5\U5230”;

    age = 18;

    height = “171.1”;

    name = jack;

    所以,我们也可以将这个字典数组的信息,给它持久化起来,

    第一个是writeToFile,这个方法的签名如下,

    - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;

    这个方法,是将字典数组的信息,保存到plist文件中,

    第二个是,从plist文件中,还原会字典,用dictionaryWithContentsOfFile,这个方法的签名如下,

    + (nullable NSDictionary < KeyType, ObjectType> *)dictionaryWithContentsOfFile:(NSString *)path;

    好了,这就是我们这个字典数组的持久化

  • 相关阅读:
    C++下基于竞拍算法解决无人机任务分配问题
    记录:Unity脚本的编写3.0
    dubbo参数配置解析
    干货!基于GAN的稀有样本生成
    Java设计模式详解:抽象工厂模式
    LeetCode | 225. 用队列实现栈
    精准用户画像!商城用户分群2.0!⛵
    怎么在Linux中用tmux跑深度学习模型
    UG NX二次开发(C#)-获取UI中选择对象的handle值
    语音信号处理-基础(一):声学基础知识
  • 原文地址:https://blog.csdn.net/madoca/article/details/127942791