zoukankan      html  css  js  c++  java
  • Cocoa中Core Data的简单介绍

      CoreData在数据模型编辑器中创建一些实体(Entity),然后在代码中为这些实体创建托管对象(Managed Object)。

      术语“实体”和“托管对象”可能有点令人混淆,因为两者都表示数据模型对象。术语“实体”表示对象的描述,而“托管对象”用于表示在运行时创建的该实体的具体实例。因此,在数据模型编辑器中,你将创建实体;而在代码中,你将创建并检索托管对象。实体和托管对象之间的差异类似于类与类实例之间的差异。

      实体由属性(property)组成。属性分为4种类型:特性(attribute)、关系、提取属性和提取请求。

      特性在内核数据实体中的作用与实例变量在object-C类中的作用完全相同。它们都用于保存数据。

      关系用于定义实体之间的关系。举例来说,假设你希望定义一个Person实体。你可能首先会定义一些特性,比如说hairColor、eyeColor、height和weight。你可以定义地址特性,比如说省份和邮政编码。或者,可以将它们嵌入到单独的HomeAddress实体中。使用后面这种方法,你可能还希望在Person和HomeAddress之间创建一个关系。

      关系可以一对一或一对多。从Person到HomeAddress的关系可以是“一对一”,因为大多数人都只有一个家庭地址。从HomeAddress到Person的关系可以是“一对多”,因为可以多个Person住在相同的HomeAddress。

      提取属性是关系的备选方法。它们之间的主要差异就是对加载的影响不同。举例来说,如果某个Person与HomeAddress之间有关系,则当Person加载时,HomeAddress也会随之加载。或者,如果某个Person使用提取属性来引用HomeAddress,则当Person加载时,HomeAddress不会随之加载,至少在访问HomeAddress之前不会加载它。可以将起称为“松散加载”。

      提取请求时一个预定义的查询。举例来说,你可以说“我需要eyeColor为蓝色的所有Person”。

      通常,特性、关系和提取属性都是使用Xcode的数据模型编辑器定义的。可以方便地在数据模型或在代码中定义提取请求。

  • 相关阅读:
    鼠标滑过图片显示放大镜效果
    如何点击iframe跳转以及允许点击全屏展示
    百度echarts饼图百分比的计算规则---最大余额法
    移动端点击出现蓝色背景框&pc端覆盖chrome浏览器input本身的背景颜色
    未解决 --- gorde-map移动端 样式为圆角移动过程中不生效
    Vue -- 数据更新echarts表格不更新问题
    Vue -- table多表头,在表头中添加按钮
    responsive --- a:hover伪类在ios移动端浏览器内无效的解决方法
    编辑器 --- Visual Studio Code mac window 常用快捷键
    mysql 知识整理
  • 原文地址:https://www.cnblogs.com/crazypebble/p/3025826.html
Copyright © 2011-2022 走看看