IOS中的本地存储

数据本地存储的本质其实就是把数据保存成文件, 存储到程序的沙盒中.

IOS中的沙盒机制是一种安全机制

沙盒的本质 其实也是文件夹

通常沙盒中包含四个文件夹Bundle, Document, Library, tmp

1.Bundle

Bundle里面存放的是 代码,  资源文件 和配置文件.

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

2.Document

Document有大小限制, 一般只存放数据库

3.Library

Library 分为俩个文件夹

caches和 preference

caches 里一般存放图片缓存, 网络数据缓存

preference 里一般存放 NSUserDfault里的东西

4.tmp

临时性文件夹, 数据用完就删


数据存储也分为简单数据存储和复杂数据存储

一.简单数据存储 :NSString NSDictionary NSArray NSData

//存入数据

//首先需要知道所存储的路径, 

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

NSString *path = [array lastObject];

NSString *fielPath = [NSString stringWithFormat:@"%@/mine",path];

NSString *str = @"abc";

之后将数据存储到指定路径

[str writeToFiel:fielPath atomically:YES encoding:NSUTF8String error:nil];


//读取数据

//同样需要获得存储路径

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

NSString *path = [array lastObject];

NSString *fielPath = [NSString stringWithFormat:@"%@/mine",path];

NSData *data = [NSData dataWithContentsOfFiel:fielPath];

NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8String];


二  .复杂数据存储 :model

//存入数据

//需要先将model类的对象归档为 NSData类型的对象,然后将NSData进行存储

#import "MyModel"

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

NSData *data = [NSKeyedArchiver archivedDateWithRootObject:model];

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

NSString *path = [array lastObject];

NSString *fielPath = [NSString stringWithFormat:@"%@/mine",path];

[data writeToFiel:fielPath atomically:YES encoding:NSUTF8String error:nil];


//读取数据

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

NSString *path = [array lastObject];

NSString *fielPath = [NSString stringWithFormat:@"%@/mine",path];

NSData *data = [NSData dataWithContentsOfFiel:fielPath];

MyModel *model = [NSKeyedUnarchiver unarchiveObjectWithData:data];





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值