为你的ToDoList添加数据保存功能

这篇博客介绍了如何为iOS的ToDoList应用添加数据保存功能,以防止数据丢失。通过理解沙盒概念和使用NSSearchPathForDirectoriesInDomains函数获取Document路径,将自定义类分开保存为两个文件。博主利用NSNotification进行消息传递,在程序进入后台和回到前台时自动调用保存和读取数据的函数,确保数据的完整保存和恢复。
摘要由CSDN通过智能技术生成
相信学习IOS的都是从ToDoList开始的吧,官方教程里实现了ToDoList的基本功能,但是数据无法保存,一旦退出后重新进入程序后数据就会丢失,现在给ToDoList添加记忆功能。
要用到的知识:
1.数据保存
2.沙盒概念
3.消息发送
数据保存和沙盒概念在我的上一篇博文已经提到。就是IOS为了安全起见不允许用户随意地写入数据,你没有权限在程序所在的目录写入数据,而只能在官方规定的目录保存用户信息。而这个目录我们可以通过NSSearchPathForDirectori esInDomains这个函数获得。代码如下:

NSArray* appDocumentPaths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  //第二个参数表示在用户主目录中找,第三个参数表示展开完整路径
    NSString* appDocumentPath=[appDocumentPaths objectAtIndex:0];
注意一下这个函数是一个C函数,所以我们使用的是C的写法,而不是方括号。
通过上面的语句我们就获得了程序对应沙盒中的Document路径了,然后再在后面添加我们要保存的文件的名称。
由于items保存的类型是我们自定义的类,所以不能直接通过NSArray的WriteTofile来保存,这也让博主很是头疼,最终采用了一种比较笨的方法——分开保存。把items的名字和状态(是否选中)分别保存为两个文件。所以就有了如下代码:

self.itemsPath=[appDocumentPath stringByAppendingString:@"/items.plist"];
    self.isDonePath=[appDocumentPath stringByAppendingString:@"/isDone.plist"];
需要注意的是isDone是基本类型不能直
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值