本篇对IOS中常用的5种数据持久化方法进行简单对比总结

第1种:UserDefaults(iPhone开发【二十】数据持久化总结之第1篇—NSUserDefaults

1)易用性很强

2)数据存储在.plist文件中

3)一般保存 配置信息,首选项信息、缓存数据等,适用存储较少量数据的情况

4)缺点:无法将自定义对象序列化到属性列表中
第2种:属性列表(iPhone开发【二十一】数据持久化总结之第2篇—属性文件(.plist)) 

1)易用性较强

2)数据存储在.plist文件中

3)一般用于存储少量数据,也不适合操作处理大量数据

4)缺点:无法将自定义对象序列化到属性列表中

这种方法与第1种非常相像,首选项信息、缓存数据等一般用第1种,其它情况一般用第二种方法。

第3种:归档(iPhone开发【二十二】数据持久化总结之第3篇—归档(NSKeyedArchiver、NSKeyedUnarchiver)) 

1)易用性较强

2)数据存储archive文件中

3)一般用于存储少量数据

4)最大的优点是:可以将复杂的对象写入文件 可以归档集合类,所以无论添加多少对象,将对象写入磁盘的方式都是一样的,不会增加工作量;

而如果用第2种方法的属性列表一则无法保存复杂对象,二则工作量会随着对象的增加而加大

第4种:sqlite3(iPhone开发【二十四】数据持久化总结之第4篇—sqlite3数据库

1)IOS 相关api都是C语言接口,且设计的易用性不强

2)数据存储在.db3(或sqlite3)数据库中,

3)可以存储大量数据,存储、检索大量数据非常高效;

开源的嵌入式数据库,ACID事务,

能对数据进行复杂的聚合,比使用对象执行这些操作要高效得多。

轻量级,跨平台,占用资源非常低,无网络服务器,只提供数据库级别的锁定,无用户账户概念。

SQLite的API不区分当前操作的数据库是在内存还是在文件。

缺点:

1.    并发访问的锁机制
SQLite在并发(包括多进程和多线程)读写方面的性能不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错;

2.     SQL标准支持不全

如不支持外键约束;

PS:封装sqlite3操作的两个常用框架BNRPersistence

fmdb(更面向对象,省去麻烦冗余的C代码,比coredata更轻量级,提供多线程安全的数据库操作,有效防止数据库混乱)

三个核心类:FMDatabase :一个对象代表一个单独的数据库

FMResultSet :查询后的结果集

FMDatebaseQueue:线程安全的执行多个查询或更新

缺点:不支持多线程同时使用同一个数据库连接操作。

第5种:CoreData(iPhone开发【二十六】数据持久化总结之第5篇—CoreData技术

类似java中的Hibernate

1)个人感觉易用性不强

2)数据存储可以选择sqlite,xml,plist或是其他方式作为持久化方案,一般使用sqlite

3)优点:实现的功能包括redo,undo,数据验证等

iPhone开发 数据持久化总结(终结篇)—5种数据持久化方法对比的更多相关文章

  1. 基于 abp vNext 和 .NET Core 开发博客项目 - 终结篇之发布项目

    系列文章 基于 abp vNext 和 .NET Core 开发博客项目 - 使用 abp cli 搭建项目 基于 abp vNext 和 .NET Core 开发博客项目 - 给项目瘦身,让它跑起来 ...

  2. 数据可视化之PowerQuery篇(二)这个方法帮你快速计算列

    https://zhuanlan.zhihu.com/p/81846862 PowerQuery中,对两列或者多列的计算一般通过添加自定义列来实现,以下表为例, 如果需要1月和2月数据的合计,可以添加 ...

  3. 深入理解iPhone数据持久化(手把手教你iphone开发 – 基础篇)

    在所有的移动开发平台数据持久化都是很重要的部分:在j2me中是rms或保存在应用程序的目录中,在symbian中可以保存在相应的磁盘目录中和数据库中.symbian中因为权限认证的原因,在3rd上大多 ...

  4. iphone开发中数据持久化之——嵌入式SQLite(三)

    前两篇分别讨论了使用属性列表的数据持久化.使用对象归档的数据持久化,本文将讨论第三个实现数据持久化的方法---嵌入式SQL数据库SQLite3.SQLite3在存储和检索大量数据方面非常有效.它还能够 ...

  5. iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist)

    iOS开发UI篇—ios应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存 ...

  6. iOS开发中的4种数据持久化方式【二、数据库 SQLite3、Core Data 的运用】

                   在上文,我们介绍了ios开发中的其中2种数据持久化方式:属性列表.归档解档.本节将继续介绍另外2种iOS持久化数据的方法:数据库 SQLite3.Core Data 的运 ...

  7. iOS开发中的4种数据持久化方式【一、属性列表与归档解档】

    iOS中的永久存储,也就是在关机重新启动设备,或者关闭应用时,不会丢失数据.在实际开发应用时,往往需要持久存储数据的,这样用户才能在对应用进行操作后,再次启动能看到自己更改的结果与痕迹.ios开发中, ...

  8. IOS开发数据存储篇—IOS中的几种数据存储方式

    IOS开发数据存储篇—IOS中的几种数据存储方式 发表于2016/4/5 21:02:09  421人阅读 分类: 数据存储 在项目开发当中,我们经常会对一些数据进行本地缓存处理.离线缓存的数据一般都 ...

  9. iOS开发UI篇—ios应用数据存储方式(偏好设置)

    iOS开发UI篇—ios应用数据存储方式(偏好设置) 一.简单介绍 很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能 每个应用 ...

随机推荐

  1. COJ 0034 动态的数字三角形

    题解:简单dp吧. 自顶向下的写法: #include<iostream> #include<cstdio> #include<cmath> #include< ...

  2. IIS 403.14 - Forbidden错误解决方法

    HTTP 错误 403.14 - ForbiddenWeb 服务器被配置为不列出此目录的内容. 解决方法如下: 打开IIS的”处理程序映射设置“,在右边的操作栏下有 ”添加脚本映射“请求路径:*可执行 ...

  3. 超给力的HTML5 3D动画欣赏及源码下载

    HTML5有着非常巨大的魅力,尤其是CSS3和Cavnas,可以帮助页面渲染得非常炫酷.值得一提的是,利用HTML5的3D特性可以帮助你更加方便地在网页上实现3D动画特效.本文分享的这些HTML5 3 ...

  4. Design Tic-Tac-Toe 解答

    Question Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assum ...

  5. 如何从google play下载app应用,直接下载apk

    如何从google play直接下载apk   by fly2004jun 2013-10-05 转载请附出处     由于某些原因,大天朝局域网访问google很多服务不能用,其中就包括google ...

  6. iOS之UITableView带滑动操作菜单的Cell

    制作一个可以滑动操作的 Table View Cell 本文翻译自 http://www.raywenderlich.com/62435/make-swipeable-table-view-cell- ...

  7. MySQL 遇到的问题:在服务里找不到自己的 MySQL,以及在命令行窗口中运行服务出现的问题。

    1.用数据库的时候在服务里找不到自己的 MySQL ,于是就想用命令行窗口去运行. ①.在开始里,键入 cmd ,打开命令行窗口. ②.输入:mysql -u root -p 回车,这时会提示请输入密 ...

  8. chrome devtools 实用快捷键

    Ctrl + O:查找资源,非常使用 Ctrl + Shift + C:切换审查元素模式与浏览器窗口模式 Ctrl + Shift + F:在源代码中搜索 Ctrl + G:跳转到指定行

  9. SQL Server 2008 导出数据与导入数据任务介绍

    一. 实例数据库介绍 源数据库Test_Other_DB:存在tb_Class,tb_Student,tb_TestTable三张表. 目标数据库TestDB_Output:空库,不含任何表. 二. ...

  10. XML解析器(TinyXML)的使用指南

    关于XML文件的解析方法的引导, 大家可以去试试这个工具(TinyXML) 1.首先下载TinyXML库的文件,这里给出链接,大家自己去下吧,记着要上国际http://prdownloads.sour ...