iOS Swift教程 Core Data 概述
来源:互联网 发布:网络位置怎么删除 编辑:程序博客网 时间:2024/05/17 23:47
什么是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 (六)单元测试
- iOS Swift教程 Core Data 概述
- iOS Swift教程 Core Data (一)Hello Core Data
- iOS Swift教程 Core Data (二)ManagedObject subclass 上
- iOS Swift教程 Core Data (二)ManagedObject subclass 下
- iOS Swift教程 Core Data (四)Fetch进阶 上
- iOS Swift教程 Core Data (四)Fetch进阶 下
- iOS Swift教程 Core Data (五)NSFetchedResultsController 上
- iOS Swift教程 Core Data (五)NSFetchedResultsController 下
- iOS Swift教程 Core Data (六)单元测试
- iOS Swift教程 Core Data (三)Core Data栈 上
- iOS Swift教程 Core Data (三)Core Data栈 下
- IOS SWIFT CORE DATA 储存,查询,
- Swift - Core Data
- Swift Core Data
- Core Data概述
- Core Data概述
- Core Data 概述
- Core Data 概述
- 微信公众平台开放设备接入能力
- 数据库之高级查询
- 06-4. How Long Does It Take (25)拓扑排序 求关键路径的最长的长度
- wifi无法获取ip地址的解决方法
- 内存分为的5大区
- iOS Swift教程 Core Data 概述
- 微信开发 文件上传
- 快速傅里叶变换C++完整实现(包括FFT、IFFT FFTShift)
- 怎样构建一个好的 Docker 镜像
- 怎样确定 Web 应用程序的线程池大小
- 随手笔记 Data类 创建当前时间 替换字符串内容 2015-1-5
- Java的Socket编程
- 对机器学习的理解
- 我们为什么要看《超实用的JavaScript代码段》???