文档章节

iOS中CoreData数据管理系列一——初识CoreData

珲少
 珲少
发布于 2016/01/27 16:52
字数 918
阅读 1644
收藏 2

iOS中CoreData数据管理系列一——初识CoreData

一、何为CoreData

    CoreData是一个专门用来管理数据的框架,其在性能与书写方便上都有很大的优势,在数据库管理方面,apple强烈推荐开发者使用CoreData框架,在apple的官方文档中称,使用CoreData框架可以减少开发者50%——70%的代码量,这虽然有些夸张,但由此可见,CoreData的确十分强大。

二、设计数据模型

    在iOS开发中,时常使用SQL数据库对大量的表结构数据进行处理,但是SQL有一个十分明显的缺陷,对于常规数据模型的表,其处理起来是没问题的,例如一个班级表,其中每条数据中有班级名称,人数这样的属性,一个学生表,其中每条数据有学生的姓名,性别,年龄这样的属性。但是如果要在表与表之间建立联系,自定义对象与自定义对象之间产生从属关系,使用SQL处理起来就十分麻烦了,例如如果这个班级表中有一个班长的属性,这个属性是一个学生类型。关于iOS中SQL的使用相关博客,地址如下:

Sqlite数据库相关知识:http://my.oschina.net/u/2340880/blog/600820

iOS中sqlite3框架的使用和封装:http://my.oschina.net/u/2340880/blog/601802

    CoreData的一大优势即是其可以方便的在对象之间建立关系。

1.创建实体类型及其属性

    使用Xcode创建一个工程,在工程中新建一个文件,选择Core Data分类中的DataModel创建,如下图:

这时在Xcode的文件导航区会出现一个以xcdatamodeld为扩展名的文件,这个文件就是数据模型文件,点击Add Entity按钮添加一个实体类型,取名为SchoolClass,为这个类型添加两个属性,分别为名字name和学生数量stuNum,如下图:

2.对实体类型进行设置

    在Xcode右侧的工具栏中可以对实体类型进行一些设置,选中一个实体类型,如下图:

Name设置实体类型的名称,Abstract Entity设置是否是抽象实体,如果勾选,则此实体不能被实例化,只能被继承,类似于抽象类,比如定义人为一个实体类型,在定义继承于人实体类型的老师、学生等来进行实例化。Parent Entity用来选择父类实体,Class用于设置对应的类的。

3.在实体对象之间建立关系

    再创建一个学生类实体Student,添加name和age两个属性。选中SchoolClass,在其中的Relationships模块中点击+号,来添加一个关系,如下图:

这时,SchoolClass实体类型中就有了一个Student类型的班长属性。如果切换一下编辑风格,可以更加清晰的看到实体类型之间的关系,如下图:

4.对属性和关系进行设置

    选中一个属性或者关系,在右侧的工具栏中可以对属性进行一些设置,如下图:

name设置属性的名字,Optional类型代表可选,即在实例化对象时可以赋值也可以不赋值。Attribute设置属性的数据类型,Default Value设置数据的默认值。

专注技术,热爱生活,交流技术,也做朋友。

——珲少 QQ群:203317592

© 著作权归作者所有

珲少

珲少

粉丝 875
博文 390
码字总数 469911
作品 0
上海
iOS工程师
私信 提问
Core Data 学习笔记 常用链接整理

目录 Core Data 学习笔记(一)框架简介 Core Data 学习笔记(二)被管理对象模型 Core Data 学习笔记(三)被管理对象 Core Data 学习笔记 应用示例 Core Data 学习笔记 常用链接整理 文章 ...

灰大羊
2015/07/31
0
0
iOS平台强大Sqlite操作引擎开源库

前言 首先写这篇文章之前自我介绍一下,我叫吴海超(WHC)在iOS领域有丰富的开发架构经验Github以后我也会以文章的形式分享具有实战意义的文章给大家,希望能够给大家有所帮助。 主题 这期我想...

WHC
2017/03/07
0
0
iOS开发笔记(九)— 数据库、Crash、内存问题分析

前言 分享iOS开发中遇到的问题,和相关的一些思考,本次内容包括:UIKit的iOS11问题、数据库问题定位、线上Crash处理、内存问题分析。 正文 1、iOS 11的UITabbar的高度异常 问题描述:iOS 1...

落影loyinglin
2018/08/26
0
0
【逐渐提高】ios 代码库 集合类

系统基础库 Category/Util sstoolkit 一套Category类型的库,附带很多自定义控件 功能不错~ BlocksKit 将Block风格带入UIKit和Founcation cocoa-helpers 一些Cocoa的扩展 2年前的工程 Coconu...

创意总监
2014/08/30
0
1
iOS应用数据存取之数据库存储-----Core Data

iOS应用数据存取的常用方式有如下几种XML属性列表 —— PListNSKeyedArchiver 归档Preference(偏好设置)SQLite3Core Data 现在我想记录以下我对core Data的认识存在理由:苹果公司为了关照...

哥特复心
2014/01/08
0
2

没有更多内容

加载失败,请刷新页面

加载更多

Dubbo服务暴露与注册

前面的文章中,我们讲解了Dubbo是如何进行配置的属性的初始化的,并且讲到,Dubbo最终会将所有的属性参数都封装为一个URL对象,从而以这个URL对象为基准传递参数。本文则主要讲解Dubbo是如何...

爱宝贝丶
27分钟前
0
0
Leetcode PHP题解--D88 696. Count Binary Substrings

D88 696. Count Binary Substrings 题目链接 696. Count Binary Substrings 题目分析 给定一个01字符串,返回仅用连续的0和1串所能组成的二进制字符串个数。 例如,00110011,就包含0011,0...

skys215
今天
2
0
基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
56
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
18
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部