IOS之沙盒路径,文件操作,XML解析
来源:互联网 发布:一战是怎么回事知乎 编辑:程序博客网 时间:2024/04/30 09:23
1.Model 模型层
1.1 干什么
将数据存储到硬盘上,将硬盘上的数据读取回内存。(文件)
硬盘<——>内存数据 + 业务处理
内存数据->硬盘 写
硬盘->内存数据 读
1.2 宏观位置 MVC
数据处理部分功能
1.3 难点
(1)存储方式多样化,而且每种办法都相似。
(2)看不见,摸不着。
二、文件处理
1.基本使用
(1)NSString 表示文件路径
(2)NSFileManager 对文件基本操作
(创建、删除、改名、探测)
(3)NSFileHandle 对文件进行读写操作
(文件的对接器)
(4)NSData 表示数据
2.NSString 路径
描述文件在硬盘上的位置。
3.NSFileManager
用来管理文件的基本操作。
4.沙盒机制 sandbox
每个ios应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其它系统(App)隔离。应用必须待在自己的沙盒里,其它应用也不能访问该沙盒。
Layer… 所有的资源文件和可执行文件
Documents 保存运行时需要持久化的数据
ITunes 可以备份该目录的数据
体积小,需要备份的内容,例如游戏的存档
Library Caches 保存应用运行时需要生的持久化数据
ITunes 不会备份,一般存体积大、不需要备份的重要数据。
Perferences 保存应用程序所有的偏好设置信息,IOS的setting(设置),应用会在该目录查找应用的设置信息,ITunes同步设置时会备份该目录。
tmp 保存程序运行时,需要的临时处理的数据,使用完毕后再将相应的文件从该目录删除,如果当前程序没有在运行状态,系统会自动删除该目录的文件。ITunes不会备份该目录。
通常情况下,Preference由系统维护,所以我们经常只会操作Documents。
5.得到相应的操作目录
a.得到沙盒路径
b.得到Documents路径
c.得到Cache路径
d.得到tmp路径
6.NSString 写、读文件能力
writeToFile… 写
stringWithContentOfFile… 读
1.创建文件时,有不同的数据格式
NSString 字符串
NSData 字节
保存文件,网络传输…
2.保存文件时有不同的格式
直接:
NSString -> 文件 写
文件 -> NSString 读
中转:
NSString -> NSData -> 文件 写
文件 -> NSData -> NSString 读
3.补充VC跳转 手动跳转
(1)连接segue,VC与VC间的连接。
(2)自己连接事件方法
(3)事件方法 调用方法 手动的通知segue进行跳转
注:参数1为Segue的标识
[self performSegueWithIdentifier:@"VC2VC" sender:self];
4.读写对象信息
(1)单一对象信息
对象->NSString->文件(人工拼接)
文件<-NSString<-对象(人工解析)
(2)复杂对象信息(多对象)
5.系统提供类
NSArray、NSString、NSDictionary、NSData、NSNumber、NDDate都提供了相应的文件读写功能。默认情况,系统的类可以直接保存信息在文件中。
*注:以上对象,包括对象中的信息也必须系统提供的。
使用XML方式将文件保存起来的,这种方式最大的好处,就是信息具有结构化。
6.图片、图像文件处理
在IOS开发中,图片处理有三种方式:
方式1:[UIImage imageNamed:@""];
方式2:文件->NSData->UIImage
方式3:文件->UIImage imageWithContent…
NSBundle是一个目录,其中包含了程序会使用到的资源,这些资源包括图象、声音…文件…,nib文件。
得到当前App所有的资源路径。
7.文件复制
使用步骤:
1.读取源文件的信息
2.将源文件的信息保存到NSData对象中
NSData *data =[NSData dataWithContentsOfFile:filePath];
3.通过NSData对象,将信息保存到新文件中
[data write…]
1.文件路径
(1)资源路径 源代码/源代码中用到图片等相应资源 NSBundle
.layer -> *.app 不能修改里面的内容(只读),如果修改会导致程序无法继续使用。(pp助手)
(2)用户信息 用来保存用户在使用程序过程当中需要长期保存的数据。
Documents/… 添加、修改、删除、查看…
2.NSFileHandle文件的对接器
2.1 是什么
NSData -> NSFileHandle-> 文件
是基础操作,把内布中的Data对象,通过连接器一个字节一个字节的传到文件中
2.2 使用步骤
1)前期准备
2)文件对接
3)读写操作
4)关闭对接
2.3 干什么
局部修改、追加内容。
2.4 文件指针
(1)data writeToFile
内部也使用NSFileHandle实现
(2)任何文件对接器在对接文件的时候,文件指针都是重新读取文件的开始位置,每次都会覆盖上一次的内容。
(3)任何的读写操作都是从当前文件指针位置开始的。
[outputHandleseekToEndOfFile]移动到最后
(4)只要不关掉输出对接器,就可以继续向文件中添加内容。
3.XML
3.1 是什么
Extensible Markup Language,可扩展标记语言,是一种用于电子文件,使其更具有结构性的标记语言。
3.2 用在哪
配置文件、网络数据传输。。。
3.3 为什么
统一文件存储标准,XML的简单使其易于在任何应用中使用。程序中读写数据,这使XML很快成为数据交换的唯一公共语言。
3.4 语法
文档声明:<?xml version="1.0"?>
元素(结点、标签):<a>值(文本)</a>
属性:定义在开始标签中的内容,称为属性。
注释:<!— 注释内容 —>
3.5 转义符问题
(1)转义
< <
> >
' &qpos;
" "
& &
(2)CDATA
如果文本中有大量需要转义的东西,就可以使用CDATA包含起来,里面的内容就不需要再转义
(3)验证(约束)
规范XML文件的标签,不可以随便进行修改和定义
DTD
Schema
3.6xml解析
把一个XML文件中的信息,读出来。
(1)SAX 事件驱动 Event-Drived
一次只读一标签内容,一边读一边解析
优点:省内存,效率低。
例:NSXMLParser
委托协议:NSXMLParserDelegate
开始元素 didStartElement
找到值 foundCharacters
结束元素 didEndElement
(2)DOM 树状模型 Tree-hierechy
一次读完所有标签内容,然后统一进行解析
优点:消耗内存,效率高。
例:TBXML第三方的开源类
(1)得到XML的文件路径
(2)读取文件中的内容并创建NSData对象
(3)得到相应的开源类的对象
(4)得到XML文件中的根元素
可以查看根元素的名称
可以查看根元素的属性
(5)得到相应的子元素
可以查看子元素的名称
可以查看子元素的属性
(如果还有子元素)得到相应的子元素
可以查看子元素的名称
可以查看子元素的属性
可以查看子元素的值(文本)
(6)将读出来的数据封装成对象
- IOS之沙盒路径,文件操作,XML解析
- iOS文件解析之XML解析
- iOS清除缓存详细解析、app文件路径操作,自己个人对于沙盒的理解
- ios开发之文件路径操作
- XML文件读取之 DOM解析操作
- XML文件写入之DOM解析操作
- ios随笔之SAX解析XML文件
- iOS文件路径操作
- IOS解析XML文件
- IOS解析XML文件
- XML文件DTD路径解析
- IOS中XML解析之小文件解析
- IOS沙盒路径及相关文件操作
- iOS之XML解析
- ios开发之沙盒文件操作
- Xml文件之解析
- IOS开发之—xml文件解析(NSXMLParser类)
- dom解析XML文件操作
- 管理员界面的用户权限设置
- POJ - 2182 - Lost Cows (线段树)
- Android中Bitmap和Drawable
- Mysql Workbench 切换Schema
- 六、观察Calendar Database的外部变化
- IOS之沙盒路径,文件操作,XML解析
- Dynamic Performance Tables not accessible 问题解决
- Android中OnScrollListener回调具体剖析
- uploadify fileDataName
- Hibernate的 @Transient
- 黑马程序员---C 语言中快速排序数组,不额外占用内存空间
- spring+mybatis利用interceptor(plugin)兑现数据库读写分离
- Popupwindow的使用
- nginx反向代理优化(文件描述符)