博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS 数据持久化解决方案总结(一)
阅读量:4563 次
发布时间:2019-06-08

本文共 1158 字,大约阅读时间需要 3 分钟。

      代码的一生是悲催的,辛辛苦苦跑完了生命的全程结果什么也不会带走,所有的数据随着代码的粉身碎骨而灰飞烟灭。正如古人所曰数据乃身外之物,生不带来,死不带走。古人又曰了:人过留名,雁过留声。代码总想在自己有限的生命中做一些什么来证明自己曾经活过。

     幸运的是作为一坨iOS代码至少可以以四种方式把自己的数据保存下来。

1. iOS文件系统的四种数据持久化机制:

  • Property lists

 

  • Object archives(or archiving)

 

  • SQLite3 (iOS 嵌入式关系数据库)

 

  • Core Data( Apple 提供的数据持久化工具)

 

顺便提一下,除了上面列出的四种常用的数据持久化方式外,在iOS中,传统的C语言中文件读取函数如 fopen(), fprint()也是可用的。

 

 2. 沙盒机制

  •   在了解数据持入化这前有必要了解一下iOS的沙盒机制。

    在iOS 中每个程序都有属于自己的数据存储空间,不同程序之间没有相互访问的权限,每个程序只能操作和维护属于自己空间的数据。在模拟器中这个文件夹位于/Users/bohan ( 用户名)/Library/Application Support/iPhone Simulator/5.1(模拟器版本号)/Applications/9D53787B-A796-40DB-A965-A4D5D7163703(程序的GUID)/

 

目录对应三个子目录依次是

Documents: 程序中除了基于NSUserDefault 的偏好设置其他所有的数据存储在此目录中

Library: 基于NSUserDefault 的偏好设置保存在些目录中

tmp: 用来保存程序运行时的一些临时文件,当通过iTunes同步时此目录中的文件不会被同步。但是程序必需主动删除不再使用的临时文件以节约空间。

  • 获取文档目录
  • NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *documentsDirectory = [paths objectAtIndex:0];

     

系统常量 NSDocumentDirectory 表示查找的是document目录, NSUserDomainMask是指查找的范围是所在程序的沙盒(在 Mac OS X中这个常量代表要查找用户的根目录)。

  • 获取临时文件目录
NSString *tempPath = NSTemporaryDirectory();

转载于:https://www.cnblogs.com/bohan/archive/2012/09/21/iOS_Persistence.html

你可能感兴趣的文章
抽象类和接口
查看>>
使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(下)
查看>>
golang 常见疑惑总结
查看>>
8大你不得不知的Android调试工具
查看>>
pc端元素拖拽
查看>>
Sublime Text3使用Package Control 报错There Are No Packages Available For Installation
查看>>
判断连通图是否有环(并查集)
查看>>
汽车之家面试题2016
查看>>
POJ-数据结构-优先队列模板
查看>>
【HAOI2006】旅行(并查集暴力)
查看>>
css实现文本超出部分省略号显示
查看>>
留言板
查看>>
vue-router组件状态刷新消失的问题
查看>>
Android UI开发第十四篇——可以移动的悬浮框
查看>>
java8的一些用法
查看>>
(十)Hive分析窗口函数(二) NTILE,ROW_NUMBER,RANK,DENSE_RANK
查看>>
2018-11-19站立会议内容
查看>>
STM32 通用定时器相关寄存器
查看>>
【题解】1621. 未命名
查看>>
字符串加密算法
查看>>