您的位置:首页 > 移动开发 > Swift

iOS Swift教程 Core Data 概述

2015-01-05 21:57 323 查看
什么是Core Data?是数据库?是SQLite?还是其它?

其实Core Data是OS X和iOS SDK中以图表方式对象进行管理并进行永久存储的framework。这就意味着Core Data可以用于存储数据,但是它不是类似MySQL或SQLite的传统数据库。虽然它可以使用SQLite作为后台的数据存储仓库,但是不要把Core Data当做数据库的表和关键字。

假设你在写一个app来记录进餐的习惯。有一系列的对象:餐厅,每个餐厅都有一些属性比如名称和地址;类别,用于对餐厅进行分类;顾客,用于记录餐厅的每一个顾客。内存中的对象图类似下图:



对象图表管理意味着Core Data可以和你定义的对象协同工作。例如,么个餐厅会有一个属性指向类型对象,也会有一个记录每一个访客的链表。由于Cocoa是面向对象的框架,你可能已经在使用对象来存储数据,Core Data基于这个来跟踪这些对象以及对象之间的关系,可以想象我们可能会扩展这个图表来记录顾客每次就餐点了些什么菜以及如何评价这些菜等等。

持久化意味着数据存储在设备的flash中或者“iCloud”中而不会由于程序结束而丢失。程序通过Save和Load来保存和加载数据,整个对象图表就被加载到了内存中。也许,某个顾客在某个餐厅有上千次的就餐记录,每次就餐也会点大量的菜,Core Data会使用lazily loading和caching来优化对内存的使用以及应用程序加载的速度。

Core Data除了存储和读取数据之外,还支持利用predicates来执行带有过滤能力的数据读取,对结果进行排序以及和iCloud同步数据。这些知识在本教程中都会涉及。

开发环境:

运行OS X Mavericks(10.9.5)及更新版本OS X的Mac。

Xcode 6.1以上版本。

运行iOS8的iOS设备,主要是与iCloud同步必须使用真机,否则模拟器足已。

教程列表:

iOS Swift教程 Core Data (一)Hello Core Data

iOS Swift教程 Core Data (二)ManagedObject subclass 上

iOS Swift教程 Core Data (二)ManagedObject subclass 下

iOS Swift教程 Core Data (三)Core Data栈 上

iOS Swift教程 Core Data (三)Core Data栈 下

iOS Swift教程 Core Data (四)Fetch进阶 上

iOS Swift教程 Core Data (四)Fetch进阶 下

iOS Swift教程 Core Data (五)NSFetchedResultsController 上

iOS Swift教程 Core Data (五)NSFetchedResultsController 下

iOS Swift教程 Core Data (六)单元测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: