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

  • 相关阅读:
    APPlication,Session和Cookie的区别
    C# 中的Request对象的应用
    从字符串里提取一个列表(数组)
    UDP:用户数据报协议
    反射
    网络编程
    多线程
    final,finally和finalize的区别
    集合
    StringBuffer
  • 原文地址:https://www.cnblogs.com/crazypebble/p/3025826.html
Copyright © 2011-2022 走看看