现在根据模型来创建NSManagedObject的子类。如果模型改变了,那就就重新生成这些文件。所以,不要在生成的文件里自定义方法,因为重新生成之后,这些修改就丢失了。假如确实需要重新生成自定义的方法,那么可以从中继承子类,或者是针对生成的文件创建类目。(是分类吧??)

  创建NSManagedObject子类的步骤如下:

  1. 选中Item实体
  2. 点击Editor > Create NSManagedObject Subclass...
  3. 确保Model处于勾选状态,然后点击Next按钮
  4. 勾选Item实体,点击Next
  5. 确保Target中的Grocery Dude处于勾选状态
  6. 不要勾选Use scalar properties for primitive data types
  7. 确保文件保存在Grocery Dude 项目的目录下,然后点击Cteate按钮

  跟上面教程所说不同,现在的机制会生成4个文件。两个属性文件Item+CoreDataProperties.h Item+CoreDataProperties.m和两个可以自定义方法的文件Item.h 、Item.m,意思是Item里面的东西不会丢失了。这很方便,不用自己再处理。

  这里重申实体类型和生成的特性类型的对应关系

  • Date--NSDate
  • String--NSString
  • Decimal--NSDecemalNumber
  • Binary Data--NSData
  • Tranformable--id

  Item+CoreDataProperties.m里面给特性都加了@dynamic修饰符。也就是说,获取和设置特性值的方法都会动态地生成,不用开发者自己去实现。

  @dynamic介绍

2.8. 创建 NSManagedObject 的子类 (Core Data 应用程序实践指南)的更多相关文章

  1. 1.1.Core Data是什么(Core Data 应用程序实践指南)

    Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...

  2. 2. 托管对象数据模型的基本知识(Core Data 应用程序实践指南)

    第一章的例子配置好了持久化存储区.持久化存储协调器.托管对象上下文.但是还没有对象图,本章要介绍托管对象模型的基础知识,并配置范例程序的对象图. 2.1. 托管对象模型是什么 托管对象模型是一种数据结 ...

  3. 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)

    项目创建时会有 “Use Core Data" ,但是,有时没有勾选这个选项,那么就要手动链接Core Data Framework. 选中 Grocery Dude Target Gene ...

  4. Core Data 应用程序实践指南(Core Data 应用程序实践指南)

    译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...

  5. 2.6. 类型(Core Data 应用程序实践指南)

    单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber. 小数:涉及货币时,建议设置为小数(decim ...

  6. 2.7. 属性的各种设置选项(Core Data 应用程序实践指南)

    可供配置的选项根据属性类型的不同有所变化,并不是每一种属性都能配置下列选项 Transient:勾选该选项,表示该属性不写入“持久化存储区”,这听起来很奇怪,但有时候,只需要把特性留在托管对象上下文就 ...

  7. 1.1.1.持久化存储协调器(Core Data 应用程序实践指南)

    持久化存储协调器(persistent store coordinator)里面包含一份持久化存储区,而存储区里又含有数据表里的若干行数据. 与原子存储不同,SQLite数据库会在用户提交变更日志时进 ...

  8. 1.4.2.3. SETUP(Core Data 应用程序实践指南)

    初始化Core Data的三个方法: init,初始化托管对象模型.持久化存储协调器.托管对象上下文 - (id)init { ) { NSLog(@"Running %@ '%@'&quo ...

  9. 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)

    有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...

随机推荐

  1. css背景图片、隐藏、指针、垂直居中、去除下划线、缩进、列表类型

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  2. UILabel 解析及自适应

    CGFloat width1=[(NSString *)ob1 sizeWithFont:[UIFont systemFontOfSize:16] constrainedToSize:CGSizeMa ...

  3. openwrt串口的使用

    从 RT5350 的芯片手册上可以得知, RT5350 一共有两个串口, 分别为 UART Lite. UART Full, UART Lite 就是我们惯称为的串口 1,作为系统调试串口,通过这个串 ...

  4. 事件g_Events

    // Events.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include & ...

  5. ural1521 War Games 2

    War Games 2 Time limit: 1.0 secondMemory limit: 64 MB Background During the latest war games (this s ...

  6. struts2.0 s标签_小小鸟_百度空间

    struts2.0 s标签 1. Struts2页面开发中常用标签使用说明 1.1.往action里传值的使用方式: <input name="userName" type= ...

  7. CodeForces 620A Professor GukiZ's Robot

    水题 #include<cstdio> #include<cstring> #include<cmath> #include<stack> #inclu ...

  8. [Java]局域网五子棋

    提示: 下面给的代码有问题哦,可以自己去调试 可用版下载 请点击这里 密码:x6ve(退出程序,端口并没有被关闭,可自行修改代码实现) img

  9. iOS开发——应用图标上显示消息数量

    iOS8以前: UIApplication *app = [UIApplication sharedApplication]; app.applicationIconBadgeNumber = num ...

  10. Jsp页面获取项目名称

    方式一: ${pageContext.request.contextPath} 方式二: <%= this.getServletContext().getContextPath() %>