iOS中数据存储方式

来源:互联网 发布:淘宝上的丰胸仪有用吗 编辑:程序博客网 时间:2024/05/09 19:51

首先我们来了解一下iOS中数据存储有哪些方式:

 * XML属性列表(plist)归档

            > plist全名是:Property List,属性列表文件。它是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist,因此通常被称为plist文件。文件是xml格式的。它是以key-value的形式来存储数据。

            > 可以用来存储用户设置,也可以用来存储一些需要经常用到而不经常改动的信息。

            > plist只能存储系统自带的一些常规的类,也就是有writeToFile方法的对象才可以使用plist保存数据。例如:NSStringNSDictionaryNSArrayNSData NSNumber等类型.   -----重点是这种智能存储系统自带类

 * Preference(偏好设置)

            > 偏好设置本质也是 plist

            > 偏好设置是专门用来保存应用程序的配置信息,比如保存用户名、密码、字体大小、是否自动登录等小数据量信息。


            > 一般情况不要在偏好设置中保存其他数据(比如图片数据,或者其他大文本数据)。如果利用系统的偏好设置来存储数据,默认就是存储在Preferences文件夹下面的,偏好设置会将所有的数据都保存到同一个文件中。------这里不要存储大文件.

* NSKeyedArchiver归档(NSCoding)

            > NSKeyedArchiver功能非常强大,使用它类进行对象(包括自定义的对象)序列化和反序列化。

              * 序列化简单的理解就是将对象保存到文件的过程。

              * 反序列化就是将从文件中读取对象的过程。  -可以存储到任意路径..任意大小

 * SQLite3 数据库

            > 比较出名的数据库有 MySql/Oracle/DB2/SqlServer/...这些大型数据库是用在 pc电脑上的,不是用在手机上的。手机上开发用的是嵌入式微型数据库,就是SQLite数据库。这里的3是指数据库已经发展到第3个版本了。


            > 数据库存储数据

                优点:相比上面几种方式,效率更高。里面封装了各种查询,插入,删除,更新数据等算法,速度非常快。


                缺点:它是关系型数据库,不是对象型数据库。对象型数据库可以直接将一个对象存储到数据库中。关系型数据库则需要将对象进行解码,然后编写 sql语句来保存数据,比较蛋疼。

                数据库一般是用来存储数据量比较大的项目中。

          

 * Core Data

            > 是苹果官方提供给开发者专门做数据持久化的框架。它是对SQLite3的封装,使用它不需要编写任何SQL语句就能够将OC对象转化成数据,保存在SQLite3数据库文件中,也能够将保存在数据库中的数据还原成OC对象。-------也是存储大数据的..


那么数据iOS将数据存储在哪里呢?

每个应用的沙盒目录都是相似的,主要包含下面4个目录:

        1> 应用名称.app

            存放内容:该目录包含了应用程序本身的数据,包括资源文件和可执行文件等。程序启动以后,会根据需要从该目录中动态加载代码或资源到内存,这里用到了lazy loading的思想。

            整个目录是只读的 为了防止被篡改,应用在安装的时候会将该目录签名。非越狱情况下,该目录中内容是无法更改的;在越狱设备上如果更改了目录内容,对应的签名就会被改变,这种情况下苹果官网描述的后果是应用程序将无法启动。

            ③是否会被iTunes同步:否   -----应用程序本身的文件.不可窜改


       2> Documents文件夹

            存放内容:我们可以将应用程序的数据文件保存在该目录下。不过这些数据类型仅限于不可再生的数据。可再生的数据文件应该存放在Library/Cache目录下。

            是否会被iTunes同步:是    ---不可再生


       3> Library文件夹

        3.1 > Library/Caches

            存放内容:主要是缓存文件,用户使用过程中缓存都可以保存在这个目录中。那么这个目录就用于保存那些可再生的文件,比如网络请求的数据。鉴于此,应用程序通常还需要负责删除这些文件。

            是否会被iTunes同步:否。-----缓存文件


        3.2 > Library/Preferences

            存放内容:应用程序的偏好设置文件。我们使用NSUserDefaults写的设置数据都会保存到该目录下的一个plist文件中.

            是否会被iTunes同步:是   ---偏好设置


       4> tmp文件夹

            存放内容:各种临时文件,保存应用再次启动时不需要的文件。而且,当应用不再需要这些文件时应该主动将其删除,因为该目录下的东西随时有可能被系统清理掉,目前已知的一种可能清理的原因是系统磁盘存储空间不足的时候。

            是否会被iTunes同步:否    ---各种临时文件,定期删除.

      下一篇上这几种的实现代码.....

    










0 0