ios 数据持久化之沙盒

原创 2014年11月29日 17:46:25

1,访问沙盒路径

    //1,home主目录里面有,Documents,Library,tmp和一个应用程序
    NSLog(@"Home:%@",NSHomeDirectory());
    //2,Documents
    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",documentsPath);
    //3,Library
    NSString *libraryPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",libraryPath);
    //4,tmp
    NSLog(@"tmp:%@",NSTemporaryDirectory());
    //5,caches
    NSString *cachesPath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",cachesPath);
    //6,user
    NSString *user = NSUserName();
    NSLog(@"user:%@",user);
    
    //7,NSBundle:图片路径
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"];
    NSLog(@"bundle:%@",bundle);

2,简单文件写入

//1,获取文件路径
    NSString *documentsPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];
    NSLog(@"%@",documentsPath);
    //2,拼接文件路径
    NSString *file = [documentsPath stringByAppendingString:@"/myText.txt"];
    //3,准备写入的内容
    NSString *content = @"Hello World!";
    
    //4,写入(下面yes是原子性,整个写入,no有多少写多少)
    [content writeToFile:file atomically:YES encoding:NSUTF8StringEncoding error:nil];
    
    //读取
    NSString *readString = [NSString stringWithContentsOfFile:file encoding:NSUTF8StringEncoding error:nil];
    NSLog(@"%@",readString);
3,

 //NSArray
    //1,获取document路径
    //2,拼接文件路径
    NSString *arrayPath = [documentsPath stringByAppendingString:@"/array.plist"];
    //3,准备内容
    NSArray *array = @[@"123",@"456",@"789"];
    //4,写入
    [array writeToFile:arrayPath atomically:YES];
    
    //5,读取
    NSArray *readArray = [NSArray arrayWithContentsOfFile:arrayPath];
    NSLog(@"%@",readArray);
    
    //NSDictionary
    //1,获取文件路径
    //2,拼接文件路径
    NSString *dictPath = [documentsPath stringByAppendingString:@"/dict.plist"];
    //3,准备写入的内容
    NSDictionary *dict = @{@"name": @"张强",@"age":@"21"};
    //4,写入内容
    [dict writeToFile:dictPath atomically:YES];
    //5,读取
    NSDictionary *readDict = [NSDictionary dictionaryWithContentsOfFile:dictPath];
    NSLog(@"%@",readDict);



iOS数据持久化之写入沙盒

iOS持久化有很多种,那么首先我们先来探讨一下文件的读写,即将文件写入到指定的沙盒路径中,但是这种持久化方式的储存对象有限制 只能写入4中类型(NSString, NSArray,NSDictiona...
  • qq_24954629
  • qq_24954629
  • 2015年01月27日 22:10
  • 448

[iOS]数据持久化-沙盒存储

一.沙盒机制 1.  每个应用程序位于文件系统的严格限制部分 2.  每个应用程序只能在为该程序创建的文件系统中读取文件 3.  每个应用程序在ios系统内都放在了统一的文件目录下 4.  ...
  • ttquaner
  • ttquaner
  • 2014年07月09日 20:16
  • 303

iOS 沙盒 数据持久化

为什么要做数据持久化:存储在内存中的数据,程序关闭,内存释放,数据丢失。这种数据是临时的。 数据持久化的本质:数据保存成文件,存储到程序的沙盒里沙盒机制1.每个应用程序位于文件系统的严格限制部分 ...
  • hw_2396611405
  • hw_2396611405
  • 2015年12月10日 18:14
  • 340

iOS 真机测试查看APP沙盒

当我们进行开发的时候,经常会查看APP的沙盒,看看数据库写入或文件存储是否正确,用模拟器run 的时候,我们那路径去通过文件夹访问是没问题的。但是通过真机的拿到的路径就无法通过电脑直接访问了,这时候要...
  • Ashimar_a
  • Ashimar_a
  • 2017年03月14日 00:46
  • 613

iOS中常用的四种数据持久化方法简介

OS中的数据持久化方式,基本上有以下四种:属性列表、对象归档、SQLite3和Core Data 1.属性列表 涉及到的主要类:NSUserDefaults,一般 [NSUserDefaults ...
  • leikezhu1981
  • leikezhu1981
  • 2014年03月24日 23:10
  • 8621

数据持久化之沙盒

沙盒:本质上就是一个文件夹 iOS平台下针对于每一个安装的应用在本地生成的文件夹(名字随机产生) 应用之间不能互相访问对方沙盒中的内容 Documents:存放数据持久化的文件 向长久存储的数据都...
  • FreeTourW
  • FreeTourW
  • 2016年05月26日 23:49
  • 213

IOS中的数据持久化之沙盒篇

提到数据持久化 我们必须得先了解IOS程序的沙盒机制(sandBox)。 1.IOS沙盒机制介绍     iOS应用程序只能在为该改程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为...
  • Henry_moneyBag
  • Henry_moneyBag
  • 2016年08月26日 10:16
  • 381

沙盒,数据持久化

//获取当前应用程序沙盒的路径 NSHomeDictionary(); //沙盒:在一定范围内可以随意做任何事情 //iOS的沙盒指的就是应用程序的文件操作文件夹,在文件夹内可以读写任何内容,但是完全...
  • yangwei_yang
  • yangwei_yang
  • 2015年03月07日 14:31
  • 270

iOS开发总结之沙盒存储

1.属性列表plist存储 plist只能存储 是写入到Documents目录下 且只能存储系统自带的一些常规的类, 也就是有writeToFile方法的对象才可以使用plist保存...
  • sunnyboy9
  • sunnyboy9
  • 2016年04月24日 22:18
  • 7698

iOS编程:数据持久化之沙盒(SandBox)目录

沙盒目录结构: |---Documents | | | ---NotesList.sqlite3 |---Library | | | ---Caches | | | ---Pref...
  • hellowupeng
  • hellowupeng
  • 2015年12月18日 18:42
  • 81
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ios 数据持久化之沙盒
举报原因:
原因补充:

(最多只允许输入30个字)