浅聊初级数据持久化

来源:互联网 发布:硕鼠for mac 编辑:程序博客网 时间:2024/04/29 15:05

第一部分:基本概念

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

简单的对象是系统给的,例如数组跟字典,复杂的是自己写的,例如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];



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





0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 奶喝一半凉了怎么办 5个月孩子厌奶怎么办 怀孕后特别不爱吃水果怎么办 宝宝吃了无比滴怎么办 婴儿上火怎么办吃什么可以去火 肚子胀怎么办最快的方法 40天婴儿拉水怎么办 8个月宝宝坐不稳怎么办 宝宝段奶不吃奶粉怎么办 3个月宝宝头睡偏了怎么办 2个月婴儿抱着睡怎么办 两个半月的宝宝睡眠少怎么办 七个月宝宝不愿意坐怎么办 一个多月的宝宝老是哭闹怎么办 宝宝头老往后仰怎么办 8个月宝宝不会爬怎么办 孩子个头长得慢怎么办 宝宝个头长得慢怎么办 婴儿个头长得慢怎么办 11个月宝宝认生怎么办 3个月宝宝认人怎么办 3个月的宝宝认生怎么办 两个月的宝宝睡觉一惊一惊怎么办 六个月宝宝不喜欢喝水怎么办 三岁宝宝尿多怎么办 一岁的宝宝尿少怎么办 一岁宝宝尿黄怎么办 三岁宝宝尿黄怎么办 5个月宝宝认生怎么办 3岁宝宝怕生胆小怎么办 2岁宝宝怕生胆小怎么办 1岁半宝宝认生怎么办 宝宝认人一直哭怎么办 七个月宝宝认人怎么办 一个月宝宝认人怎么办 2个多月宝宝认人怎么办 婴儿认人一直哭怎么办 六个月宝宝认人怎么办 十一个月宝宝断奶后辅食怎么办 6个月宝宝不会坐怎么办 7个月宝宝坐不住怎么办