iOS 结构化数据访问

摘要:
iOS内置数据库是SQLite。您可以在终端模式下直接输入sqlite3命令以启动SQLiteShell,然后使用SQLCommand完成所有数据库管理和操作。

一、介绍

  在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,iOS还提供了另外几种重要的数据存储方式。虽然这些方式最后还是将数据存储在文件中,但是iOS以一套系统性有制度的方式来管理这些数据,让数据不再是“散乱”的存储在文件中。如此一来,我们很容易处理大量的数据,并且同时兼顾性能。最常用的有三种方式:

  1.PLIST文件

  2.SQLite数据库

  3.Core Data

二、PLIST文件

  以XML格式存储的文本文件。

  存储的数据具有“属性名称与属性值”形式。

  由于iOS沙盒机制,每个App所在目录下只有三个文件夹具备写入权限。

  若将数据写入到.plist文件,则必须在App运行后将.plist文件移动到具有写入权限的文件夹中,一般为Documents。

三、SQLite数据库

  由于Mac OS与iOS已经内置SQLite数据库引擎,因此只要在XCode项目中的Framework加入libsqlite3.dylib函数库,就可以让开发出来的App具备访问数据库的能力。

  若安装FireFox浏览器,下载SQLite Manager这个AddOn,就可以拥有一个免费且好用的图形化管理界面。

    iOS 结构化数据访问第1张

  操作数据库的数据几乎都是SQL Command的事,程序语言Objective-C在这里只是一个载体,目的是把SQLCommand送进数据库去运行,然后取得运行结果后输出而已。

  iOS内置数据库为SQLite可直接在终端机模式下输入sqlite3命令来启动SQLite Shell,然后通过SQL Command来完成数据库的所有管理和操作。

  在创建与数据库的连接后,最好不要经常开关数据库,这样会让系统运行的效率变得很差。

  在查询数据库中数据时,一般使用while循环,因为不知道查询的结果有多少条数据。

  如果SQLite数据库要存储图片,其字段类型为BLOB。

四、Core Data

  Apple工程师将标准的数据库进行了一些变形,隐藏了SQL Command。

  在使用Core Data访问数据库前,必须要先将实体以及实体之间的关系设计出来。

  Core Data最后存储数据的地方依然是数据库,使用的是iOS内置的SQLite。

五、链接

  http://blog.csdn.net/super_man_ww/article/details/51330464

免责声明:文章转载自《iOS 结构化数据访问》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇破解pcap文件的NTLMv2 hash以得到密码明文FFmpeg流媒体处理-收流与推流下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ResultSet用法集锦 (转)

转:http://soft-development.iteye.com/blog/1420323 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个存储查询结果的对象,但是结果集并不仅仅具有存储的功能,他同时还具有操纵数据的功能,可能完成对数据的更新等.      结果集读取数据的方法主要是getXXX(),他的参数可以是整型表...

SSIS 学习(2):数据流任务(上)【转】

数据流任务是SSIS中的一个核心任务,估计大多数ETL包中,都离不开数据流任务。所以我们也从数据流任务学起。   数据流任务包括三种不同类型的数据流组件:源、转换、目标。其中:   源:它是指一组数据存储体,包括关系数据库的表、视图;文件(平面文件、Excel 文件、Xml 文件等);系统内存中的数据集等。   转换:这是数据流任务的核心组件,如果说数据流...

python pandas 对带时间序列的数据进行重采样处理

今天老板要处理一批带有时间序列的数据,源数据为1秒钟一行的csv数据,处理之后变成15分钟一行的数据。 源数据示例如下: time B00 B01 ... RollMean2.5RollMean10 2018-05-31 09:44:39 15.212 5.071 .....

Android类参考---SQLiteOpenHelper

public 抽象类 SQLiteOpenHelper 继承关系 java.lang.Object |____android.database.sqlite.SQLiteOpenHelper 类概要 这是一个辅助类,用来管理数据库的创建和数据库的版本。 你要创建一个这个类的子类来实现onCreate(SQLiteDatabase),onUpgrade(SQ...

C# SQLLite

1。从www.sqlite.org下载SQLite 3.3.4的版本   为了方便,把它解压了,就一个SQLite3.exe,放入Windows目录下。 Cmd 进入命令行   创建数据库文件:   >SQLite3 d:\test.db    就生成了一个test.db在d盘。这样同时也SQLite3挂上了这个test.db   查看可用命令  ...

使用SyncNavigator轻松实现数据库异地同步、断点续传、异构同步

最近一直在研究数据库同步的问题,在网上查了很多资料,也请教了很多人,找到了一种通过快照复制的方法。研究了一番后发现之前就是用的这个方法,效果不是很好,果断放弃。经过了一番寻觅和他人指点,最后从一位热心网友那里得知一款很好用的软件—— SyncNavigator。 好东西就要拿出来跟大家分享,所以今天向大家介绍一下这款软件,及其一些使用方法。下面先看看它有...