博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS中sqlite和coreData的区别
阅读量:4306 次
发布时间:2019-06-06

本文共 1101 字,大约阅读时间需要 3 分钟。

sqlite和coreData的区别:

1.sqlite数据库的操作流程:

创建数据库,再通过定义一些字段来定义表格结构,可以利用sql语句向表格中插入记录,删除记录,修改记录,表格之间也可以建联系。

sqlite和coreData的类做个对应:

表结构--------NSEntityDescription(菜单详情)

数据库中所有的表格和他们的联系--------NSmanagedObjectModel(菜谱)

数据库存放方式---------NSPersistentStoreCoordinator(厨师)

查询语句-----NSFetchRequest(需求)

表格的记录------NSManagedObject(实体管理类)

数据库操作------NSManagedObjectContext(服务员小姐)

2.coredata部分知识

NSEntityDescription,NSManagedObjectModel

NSEntityDescription用来定义表格结构,所以你就可以理解NSManagedObjectModel中的setEntities(NSArray *)entities函数大概有什么用了。通常定义model,是用文件CoreData.xcda****odel,可以图形化的操作,这类似用nib来创建界面。

     新建一个工程,使用coredata,模拟器运行之后,程序对应的document目录出现一个coreData.sqlite,可以利用sqlite3命令来查看里面的表格结构

NSPersistentStoreCoordinator

这个类的对象又用NSPersistentStoreCoordinator对象来初始化,它里面有些方法来添加,删除NSManagedObject

NSFetchRequest

通常用NSEntityDescription来构造查询,也就指定查询那个表格,另外可以指定排序

      在coreData的设计中,下一层有相应的属性指向上一层,所以NSManagedObject有属性得到NSEntityDescription,NSEntityDescription,有属性得到NSManagedObjectModel。

至于类

NSFetchedResultsCotroller,只是又封了一下,和NSFetchRequest合起来使用,方便取数据,另外和NSManagedObjectContext关联,当数据库发生变化的时候收到通知

 

转载于:https://www.cnblogs.com/zhoulina/p/5467180.html

你可能感兴趣的文章
apache下虚拟域名配置
查看>>
session和cookie区别与联系
查看>>
PHP 实现笛卡尔积
查看>>
Laravel中的$loop
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel 操作redis的各种数据类型
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
laravel 定时任务秒级执行
查看>>
浅析 Laravel 官方文档推荐的 Nginx 配置
查看>>
Swagger在Laravel项目中的使用
查看>>
Laravel 的生命周期
查看>>
CentOS Docker 安装
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
Mysql出现Table 'performance_schema.session_status' doesn't exist
查看>>
MySQL innert join、left join、right join等理解
查看>>