一、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; 好了,这就是我们这个字典数组的持久化