iOS数据持久化(-)属性文件

摘要

所谓数据持久化是指,将数据存储下来,使得应用程序下次打开或者机器重启后可以继续访问之前保存的数据。iOS开发中有多种持久化方案,如:

  • plist文件(属性列表)
  • NSKeyedArchiver(对象归档)
  • preference(偏好设置)
  • sqlite3
  • coredata
    沙盒机制:ios不同应用有独立的文件目录,不能互相访问。这个独立的文件目录就称为”沙盒”.
    1、目录结构,苹果帮忙创建应用的目录机构,如下:
  • “应用程序包”
  • Documents 保存的持久性最强,可同步到其它地方。
  • Library 下有Cache 和Preferences
  • tmp:用于存放临时文件,
    2、目录说明
    “应用程序包”:这里存放的是应用程序源文件,包括资源文件和可执行文件。
 NSString *path = [NSBundle mainBundle]bundlePath];

“Documents”:最常用的目录,itunes同步该应用时,会同步此文件中的内容,适合存储重要数据。

 NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject;

Library /Cache:ITunes不会同步此文件夹,适合存储体积大,不需要备份的非重要数据。

NSString *path = NSSearchPathForDirectoriesInDomains(NSCachesDirectory,NSUserDomainMask,yes).firstObject;

Library /Preferences::ITunes会同步此文件夹,通常保存应用的设置信息

tmp:iTunes不会同步此文件夹,系统可能在应用没运行时就删除该目录下的文件,所以此目录适合保存一些临时文件,用完就删除。
NSString *path= NSTemporaryDirectory();

plist 属性文件

plist文件是将某些特定的类,通过xml文件的方式保存在目录中。
可以被序列化的类型:
1. NSArray
2. NSMutableArray
3. NSDictionary
4. NSMutableDictionary
5. NSData
6. NSMutableData
7. NSString
8. NSMutableString
9. NSNumber
10. NSDate
只有以上10种类型才能使用plist文件存储。存储时使用writeToFile:atomically:方法。其中第二个参数atomically表示是否需要先写入一个辅助文件,再把辅助文件拷贝到目标文件地址。这是更安全的卸乳文件方法,一般都用yes。
读取时使用 arrayWithContentsOfFile:方法。

1、获取路径
NSString *path =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES).firstObject;
NSString *fileName = [path
stringByAppendingPathComponet:@”test.plist”];
2、存储数据
NSString *array=@[@”中”,@”4g”,@”3g”];
[array writeToFile:fileName atomically:YES];
3、读取数据
NSArray *data =[NSArray arrayWithContentsofFIle:fileName];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

house.zhang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值