一、存储的地方介绍
iOS 本地存储主要存储在沙盒中,那么何为沙盒?沙盒其实就是一个文件夹。这些文件夹主要用来存放数据文件的。
1.如何进入沙盒?
1.1执行代码NSHomeDirectory()即可打印进入沙盒文件的路径。
1.2同时按住command + shift + g,把打印出来的路径粘贴上去,按回车,即可进入沙盒目录。
注意1:只有模拟器调试时才能进入沙盒,真机调试是进不了的。
注意2:沙盒路径是会变
的,好像是每次重新运行APP时路径就会改变,因此在访问沙盒目录下的自建文件(自己在沙盒目录下创建的文件)
时,应该先使用系统方法获取沙盒路径,再拼接自建文件夹路径,而不能使用之前保存的自建文件夹的全路径来访问自建文件,否则将访问失败。
2.沙盒文件夹一共有3个
3.现在开始按照顺序对沙盒目录下的文件夹进行文件介绍
3.1 Documents
保存应用运行时生成的需要持久化的数据,iTunes同步设备时会备份该目录。-
3.2 Library
该目录下还有两个文件夹,如下图:
Snip20170520_3.png 3.2.1 Library/Caches
保存应用运行时生成的需要持久化的数据,iTunes同步设备时不会备份该目录。一般存储体积大、不需要备份的非重要数据 。(笔者曾将用户录制的视频和fmdb数据库存放于此,发现每个一段时间(大约3天左右),caches目录下的数据都会被自动清空)
。经查询,有相关资料佐证。简而言之,就是在内存不够的情况下,系统会自动清除caches目录下的数据。3.2.2 Library/Preferences
作用:比如保存用户名、密码、字体大小等设置。通过NSUserDefault实例来存储该目录下的设置信息。只要使用了NSUserDefault单利来保存对象,那么在Library/Preferences目录下就会自动创建一个plist文件。3.3 tmp(了解即可)
保存应用运行时所需的临时数据,使用完毕后再将相应的文件从该目录删除。应用没有运行时,系统也可能会清除该目录下的文件。iTunes同步设备时不会备份该目录
二、存储技术
笔者知道的有这么几种技术
1、NSUserdDefault(单利)存储形式plist,文件自动存放在Library/Preferences
目录中。
2、NSKeyedArchive(归档),可以保存模型,牛逼得很。
3、数据库(数据库有好多种)