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的数据模型编辑器定义的。可以方便地在数据模型或在代码中定义提取请求。

  • 相关阅读:
    微信公众平台和微信开放平台的区别
    今天学习到的关于mysql数据库的linux命令
    myql --- mysqldump使用方法
    Git常用操作命令
    PHP中的日期加减方法示例
    php发送get、post请求的6种方法简明总结
    PHP时间日期比较
    Crystal Reports 2008(水晶报表) 安装
    Linux远程连接与常用命令
    Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码
  • 原文地址:https://www.cnblogs.com/crazypebble/p/3025826.html
Copyright © 2011-2022 走看看