ios数据的本地存储-属性列表

数据本地存储是指将数据写到本地的文件中,即使手机重启了数据也不会丢失,数据的本地存储有很多种方式,但是比较有代表性、也是最常用的方式有:

1、属性文件

2、NSUserDefaults

3、对象归档

4、关系数据库SQLite3

5、core data

 

数据的本地存储的基础是沙盒机制,如果不了解这个机制的话,见请先看了解一下沙盒机制(见文博文“iOS沙盒机制”)。

 

属性列表:

使用方法:

1、在工程的Supporting Files下新建属性列表文件(data.plist);

2、写数据到属性文件:

- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error;

将数据写带属性文件中去。

3、将属性文件的数据读取出来:

- (instancetype)initWithContentsOfFile:(NSString *)path usedEncoding:(NSStringEncoding *)enc error:(NSError **)error,
将数据读取出来。
 
e.g:
    //获取属性列表文件的路径:
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *strPaths = [paths objectAtIndex:0];
    NSString *plistPath = [strPaths stringByAppendingPathComponent:@"data.plist"];
    //将数据到属性文件
    NSString *data = @"hi man";
    [data writeToFile:plistPath atomically:YES encoding:NSUTF8StringEncoding error:nil];
 
   //从属性文件读取数据
   NSStringEncoding encode = NSUTF8StringEncoding;
   NSString *strData = [[NSString alloc] initWithContentsOfFile:plistPath usedEncoding:&encode error:nil];
 
   从上面的例子可以看出,并不是所有的数据类型都能存放到属性列表中的,只有改类具有类似writeToFile:atomically这样的api才行( NSArray, NSDictionary, NSData,   NSString, NSnumber, NSDate), 像自定义类型的数据属性列表就无能为力了。
 
注意:属性文档的数据是全部加载到内存的,不管你哪怕你更改了一个字节的数据也必须将所有数据全部重新写入文件!
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值