iOS 结构化数据访问
一、介绍
在存储大量数据时,除了最基本的打开文件,读取文件,存盘等这些没有明确管理机制的方式来存储数据外,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,就可以拥有一个免费且好用的图形化管理界面。

操作数据库的数据几乎都是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 结构化数据访问的更多相关文章
- 【阿里云产品公测】结构化数据服务OTS之JavaSDK初体验
[阿里云产品公测]结构化数据服务OTS之JavaSDK初体验 作者:阿里云用户蓝色之鹰 一.OTS简单介绍 OTS 是构建在阿里云飞天分布式系统之上的NoSQL数据库服务,提供海量结构化数据的存储和实 ...
- TensorFlow从1到2(六)结构化数据预处理和心脏病预测
结构化数据的预处理 前面所展示的一些示例已经很让人兴奋.但从总体看,数据类型还是比较单一的,比如图片,比如文本. 这个单一并非指数据的类型单一,而是指数据组成的每一部分,在模型中对于结果预测的影响基本 ...
- Solr系列四:Solr(solrj 、索引API 、 结构化数据导入)
一.SolrJ介绍 1. SolrJ是什么? Solr提供的用于JAVA应用中访问solr服务API的客户端jar.在我们的应用中引入solrj: <dependency> <gro ...
- 零基础学Python之结构化数据(附详细的代码解释和执行结果截图)
3结构化数据 字典(查找表).集合.元组.列表 3.1字典 是有两列任意多行的表,第一列存储一个键,第二列存储一个值. 它存储键/值对,每个唯一的键有一个唯一与之关联的值.(类似于映射.表) 它不会维 ...
- Spark读取结构化数据
读取结构化数据 Spark可以从本地CSV,HDFS以及Hive读取结构化数据,直接解析为DataFrame,进行后续分析. 读取本地CSV 需要指定一些选项,比如留header,比如指定delimi ...
- Bigtable:一个分布式的结构化数据存储系统
Bigtable:一个分布式的结构化数据存储系统 摘要 Bigtable是一个管理结构化数据的分布式存储系统,它被设计用来处理海量数据:分布在数千台通用服务器上的PB级的数据.Google的很多项目将 ...
- (四)DIH导入结构化数据
(四)DIH导入结构化数据 目前大多数的应用程序将数据存储在关系数据库(如oracle.sql server .mysql等).xml文件中.对这样的数据进行搜索是很常见的应用.所谓的DataImpo ...
- Spark SQL - 对大规模的结构化数据进行批处理和流式处理
Spark SQL - 对大规模的结构化数据进行批处理和流式处理 大体翻译自:https://jaceklaskowski.gitbooks.io/mastering-apache-spark/con ...
- [Python]ctypes+struct实现类c的结构化数据串行处理
1. 用C/C++实现的结构化数据处理 在涉及到比较底层的通信协议开发过程中, 往往需要开发语言能够有效的表达和处理所定义的通信协议的数据结构. 在这方面是C/C++语言是具有天然优势的: 通过str ...
随机推荐
- JDK8新增时间类型用在JPA中的问题
之前数据库存储日期时间类型时一般POJO实体对应属性为java.util.Date,然后通过JPA注解指定它是日期格式或是日期时间格式,JDK8中新增了更好的时间API,如表示本地日期的LocalDa ...
- flutter 控制台快捷键
- 【转】Vue生命周期
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...
- Hbase 简介+环境安装配置教程
HBase介绍 HBase是参考google的bigtable的一个开源产品,建立在hdfs之上的一个提供高可靠性.高性能.列存储.可伸缩.实时读写的数据库系统.是一种介于nosql和RDBMs之间的 ...
- elasticsearch _script 脚本排序
具体脚本语法请自行搜索“Groovy”语法. { "from" : 0, "size" : 5, "query" : { "boo ...
- GTID的相关特性
配置MySQL GTID 主从复制 基于mysqldump搭建gtid主从 二.GTID如何跳过事务冲突 1 2 3 4 5 6 7 8 9 10 11 很多无法预料的情形导致mysql主从发生事务冲 ...
- VS中的类模板
在目录C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\ItemTemplates\CSharp\Co ...
- maven打包时跳过测试
本文转载自:https://blog.csdn.net/thc1987/article/details/42458895 运行mvn install时跳过Test 方法一: <project&g ...
- Python利用Plotly实现对MySQL中的数据可视化
Mysql表数据: demo.sql内容 create table demo( id int ,product varchar(50) ,price decimal(18,2) ,quantity i ...
- 使用Mesos和Marathon管理Docker集群
分布式系统是难于理解.设计.构建 和管理的,他们将比单个机器成倍还要多的变量引入到设计中,使应用程序的根源问题更难发现.SLA(服务水平协议)是衡量停机和/或性能下降的标准,大多数现代应用程序有一个期 ...