【通讯录案例-数据存储总结 Objective-C语言】

本文总结了Objective-C中三种数据存储方式:plist、偏好设置和NSKeyedArchiver。重点讲解了字符串如何使用plist存储,包括writeToFile:方法的应用,以及在存储中文字符串时可能出现的问题。此外,还探讨了路径搜索时expandTilde参数的意义,以及自定义对象如何使用归档解档实现存储,强调了遵守<NSCoding>协议的重要性。
摘要由CSDN通过智能技术生成

一、我们简单的把“数据存储”总结一下,

通知

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];

通知

然后,NS

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清风清晨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值