浅聊初级数据持久化

第一部分:基本概念

数据持久化就是把你从网上获得的数据存储到自己的本地内存中;我们保存本地一般式分简单对象跟复杂对象的;

简单的对象是系统给的,例如数组跟字典,复杂的是自己写的,例如model;

说道储存就必须说一下沙盒机制;

沙盒机制是一种安全机制,防止其他应用程序来获得自己的数据;沙盒里面有四个文件夹

1.Bundle 2.Documents 3.Library 4.Tmp

1.Bundle 1.代码 2.资源文件 3.配置文件

 内容在程序运行期间为只读, 不能进行任何的修改

 在开发期间可以更改

 2.Documents

 1.大小限制(系统里的文件会自动上传到icloud(5G))2.数据库 3.从应用程序安装到删除的时候所放的东西

 3.Library 1.caches 2.preference

 caches 1.放图片缓存 2. 网络数据存储(也叫缓存)

 preference(配置) NSUserDefaules来存储密码,账户等(自动存储到perference)

 4. Tmp(临时性文件夹)数据用完就删(一般放解压文件)

第二部分:简单数据存储

1.字符串存储:

NSString *str = @"dl";

    NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *path = [array firstObject];

    NSString *path1 = [NSString stringWithFormat:@"%@/%@", path, @"123"];

    [str writeToFile:path1 atomically:YES encoding:NSUTF8StringEncoding error:nil];

    NSLog(@"%@", path1);

2.字典的存储:

NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithObjectsAndKeys:@"111111", @"num", nil];

    NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *path = [array firstObject];

    NSString *path1 = [NSString stringWithFormat:@"%@/1111", path];

    [dic writeToFile:path1 atomically:YES];

3.数组的存储:

NSMutableArray *arr = [NSMutableArray arrayWithObjects:@"13213", nil];

    NSArray *array = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *path = [array firstObject];

    NSString *path1 = [NSString stringWithFormat:@"%@/11", path];

    [arr writeToFile:path1 atomically:YES];

第三部分:复杂数据的存储

Model *model = [[Model alloc] init];

    model.name = @"zhang";

    model.age = 23;

    model转换为data,进行归档(空间有限,这里我就省略创建Model了)

    如果model在数组中, 想要存储数组, 也必须用复杂类型对象将数组转换成data, 然后进行存储

    NSData *data = [NSKeyedArchiver archivedDataWithRootObject:model];

    NSArray *arr = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);

    NSString *path = [arr firstObject];

    path = [NSString stringWithFormat:@"%@/1.txt", path];

    [data writeToFile:path atomically:YES];



注意:读取部分我就不说了,调用相应的读取地址的函数即可,原理基本一样;





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值