在iOS App开发过程当中常常须要操做一些须要持续性保留的数据,好比用户对于App的相关设置、须要在本地缓存的数据等等。本文针对OC中常用的一下存储方式作了个整理。sql
经常使用的存储工具/方式: 数组
NSUserDefaults类缓存
Plist文件 app
解归档框架
手动存放沙盒iphone
// sqlite函数
CoreData 工具
第三方数据存储框架spa
通常对于一些基本的用户设置,由于数据量很小,咱们可使用OC语言中的 NSUserDefaults类来进行处理。使用方法很简单,只须要调用类中的方法便可:3d
NSUserDefaults类除了能够存储数组、字典、NSdata外,还能够直接存储OC基本类型属性。可是不能直接做用到自定义对象,若是是自定义对象须要进行归档操做,这里后面会讲到。
Plist文件做为Xcode的一种资源包,也能够做为一种存储工具。
1.在项目中建立Plist文件。 在项目中建立的好处是文件的可视化,咱们能够很直观的看到文件的内容,同时Xcode还提供了直接操做文件的功能。便于咱们对文件内容的增删改查。这种方式的缺点是项目中的plist文件通常做为固态的数据形势保存,对于常常须要改动的数据就很差操做了。
获取文件中的数据代码
2.代码读写Plist文件。避免了在项目中建立Plist文件致使不便更改的麻烦。
以前说了,不论是NSUserDefaults 或者是 plist 都不能对自定义的对象进行存储,OC提供了解归档刚好解决这个问题。 解归档针对的是一个对象,假设咱们如今有一个TestModel的类,须要进行归档和接档,上代码。
对象的.h文件
对象的.m文件
接下来只要使用解/归档辅助类就能够TestModel类进行解归档
运行代码以后 打印
iphone沙箱模型的有四个文件夹,分别是documents,tmp,app,Library。
一、Documents 目录:您应该将全部的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该按期备份的信息。为了避免让App的备份过于庞大,咱们不建议在这里存放大容量的文件。
二、AppName.app 目录:这是应用程序的程序包目录,包含应用程序的自己。因为应用程序必须通过签名,因此您在运行时不能对这个目录中的内容进行修改,不然可能会使应用程序没法启动。
三、Library 目录:这个目录下有两个子目录:Caches 和 Preferences
Preferences 目录:包含应用程序的偏好设置文件。您不该该直接建立偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好.
Caches 目录:用于存放应用程序专用的支持文件,保存应用程序再次启动过程当中须要的信息。细心的话你会发现几乎全部的第三方框架的缓存信息处理都在这个文件中,通常的大容量文件都放在这里。
四、tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程当中不须要的信息。Nsuserdefaults保存的文件通常在tmp文件夹里。
获取这些目录路径的方法:
1,获取家目录路径的函数:
2,获取Documents目录路径的方法:
3,获取Caches目录路径的方法:
4,获取tmp目录路径的方法:
沙盒中只能保存OC中的基本数据,自定义的对象不能直接存入。 存入方式以下。
打印如图: