一、我们简单的把“数据存储”总结一下, 1.上午,我们说的三种存储方式, 1)plist 2)Preference(偏好设置) 3)NSKeyedArchiver(归档、解档) 三种存储方式, 2.什么能做plist存储, 1)writeToFile:方法, 实际上,这个东西,才是关键, 有一个对象,可以去写writeToFile:方法, 那么,可以考虑,去做plist存储, 2)还有一个比较特殊的东西,我们说,字典,和,数组,都可以去写writeToFile:方法, 还有一个是字符串,实际上,字符串,也有writeToFile:方法, 它实际上,也可以去做plist存储, 但是,plist本身,并不支持字符串, 也就是说,我们那个plist,新建了一个文件,根节点,那一块儿,我们选了一下,只有Array、和、Dictionary、这两个、 然后,字符串,实际上,是没有的, 但是,字符串,也可以去做plist存储, 2.好,我们可以试一下啊, 新建一个项目啊, Name:“08-字符串做plist“, 点“Next”, 好,新建一个项目啊, 好,然后呢,在这个里边儿啊, 我直接在viewDidLoad:里边儿来写吧, 2)首先呢,写一个字符串啊,NSString NSString *str = @“value”; 然后呢,这个str,实际上,也有一个叫做writeToFile:的方法, 然后呢,用这个“过期的”,也行,“新的”,也行, 新的,需要编码,我直接用这个“过期的”, [str writeToFile:(NSString *) atomically:(BOOL)]; [str writeToFile:(NSString *) atomically:(BOOL)]; 输入两个参数: 1)writeToFile:(NSString *),这个里边儿啊,要传一个file, 这个file里边儿,来一个 NSString *tmpPath = NSString *tmpPath = NSTemporaryDirectory(); tmpPath,就等于NSTemporaryDirectory(),系统给我们封装好的,我们只需要一句话,就能取到tmpPath, tmp的啊,不是document的,NSTemporaryDirectory,这是系统给我们封装好的,直接一句话啊,就能够拿的到, 然后,再来一个file的path,啊, NSString *filePath = [tmpPath stringByAppendingPathComponent:(NSString *)]; 来一个file的name, 好,这个方法,再来写一个plist,“xx.plist”, 好,然后呢,把这个filePath,传进来, 2)atomically:(BOOL),这个atomically,直接YES, 然后,command + R, 这个应该就跑起来了啊, 跑起来以后,应该是有值的啊,我们看一下沙盒, 打开这个tmpPath, 实际上,也会有这么一个“xx.plist”, 然后呢,你打开它啊, 它这儿,也会有这么一个value,但是,它的“根节点”的类型,实际上,是什么都没有的, 它是,“存”,是没有问题的, 然后,你取出来,实际上,也没有问题, 我在这个里边儿,选中这个方法,删掉, 然后,写一个减号,- - tou - touchesBegan:withEvent: - (void)touchesBegan:(NSSet< UITouch * > *)touches withEvent:(UIEvent *)event{ } 我在这个里边,写一个touchBegan啊,点击屏幕的时候,让它取一下 路径,还是它, 选中这一堆,command + C、 到这个touchBegan:方法里边儿,command + V、 写一个注释,// 获取文件路径 然后,再command + V、 好,然后呢,路径有了以后,我们再, 我们再去取一个字符串啊,实际上,你这个plist,你字典怎么着解析的,你字符串,也是一样的啊, 通过NSString 的一个方法, [NSString [NSString stringWithContentsOfFile:(NSString *)]; [NSString stringWithContentsOfFile:(NSString *)]; 然后,把这个filePath,传进来, 然后,我拿NSString类型的变量去接一下, NSString *str = [NSString stringWithContentsOfFile:filePath]; 然后