IOS沙盒跟sqlite简单操作分析
IOS沙盒和sqlite简单操作分析每一个IOS应用都有其自己的独立存储数据的磁盘空间,这个空间不允许其他应用访
IOS沙盒和sqlite简单操作分析
每一个IOS应用都有其自己的独立存储数据的磁盘空间,这个空间不允许其他应用访问,当然本应用也不能访问其他应用的存储空间。这个空间在IOS中叫做应用沙盒,其类似于WP中的独立存储空间。
沙盒的目录结构如下:

下面简要介绍一下各个目录的作用:
Document目录一般用来保存非常重要的数据但不能太大(数据太大同步到云端需要很长时间),因为该目录可以通过itunes同步到icloud上,苹果建议将程序中建立的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录;
tmp主要用来保存临时数据,应用关闭后,该目录下的数据会被清空;
Library的作用和Document类似,存储程序的默认设置或其它状态信息。其Preference一般保存用户的偏好设置,通过API可以非常便捷的访问该空间内存储的数据(后面的例子我们将会看到)。Caches主要用来存放缓存文件,itunes不会备份该目录,该目录在应用退出时也不会被删除;
那么我们如何来利用沙箱进行文件的存储和读取呢?
首先我们展示如何将一个Person对象保存到一个文件中(这里的扩展名是可以随便写的,这里使用的是archive方式进行的归档持久化,其实质上并不是一个.plist文件,我们知道.plist文件实质上是一个xml文件。而archive方式进行归档后的文件并不是xml格式),代码如下:
sqlite3_close(db);
这里并没有,展示删除或者更新的操作。据一些资料说通过sqlite3_exec可以执行更新和删除操作,我在写这篇日志的时候还没有验证。明天会验证。还有很多sqlite3的函数值得我们去探索,有了现有的知识,再去弄清楚其他函数的作用还是很容易的事,至少我们已经知道在什么时候我们能做什么。