2.8. 创建 NSManagedObject 的子类 (Core Data 应用程序实践指南)
现在根据模型来创建NSManagedObject的子类。如果模型改变了,那就就重新生成这些文件。所以,不要在生成的文件里自定义方法,因为重新生成之后,这些修改就丢失了。假如确实需要重新生成自定义的方法,那么可以从中继承子类,或者是针对生成的文件创建类目。(是分类吧??)
创建NSManagedObject子类的步骤如下:
- 选中Item实体
- 点击Editor > Create NSManagedObject Subclass...
- 确保Model处于勾选状态,然后点击Next按钮
- 勾选Item实体,点击Next
- 确保Target中的Grocery Dude处于勾选状态
- 不要勾选Use scalar properties for primitive data types
- 确保文件保存在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修饰符。也就是说,获取和设置特性值的方法都会动态地生成,不用开发者自己去实现。
2.8. 创建 NSManagedObject 的子类 (Core Data 应用程序实践指南)的更多相关文章
- 1.1.Core Data是什么(Core Data 应用程序实践指南)
Core Data是个框架,把数据当作对象来操作. 由Core Data提供的数据对象叫托管对象(managed objecgt),而Core Data 位于程序和持久化存储区之间. 托管对象模型里有 ...
- 2. 托管对象数据模型的基本知识(Core Data 应用程序实践指南)
第一章的例子配置好了持久化存储区.持久化存储协调器.托管对象上下文.但是还没有对象图,本章要介绍托管对象模型的基础知识,并配置范例程序的对象图. 2.1. 托管对象模型是什么 托管对象模型是一种数据结 ...
- 1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
项目创建时会有 “Use Core Data" ,但是,有时没有勾选这个选项,那么就要手动链接Core Data Framework. 选中 Grocery Dude Target Gene ...
- Core Data 应用程序实践指南(Core Data 应用程序实践指南)
译者序 前言 勘误 1. 初次尝试Core Data应用程序 本书的基础,基本概念,能做什么,不能做什么.实现CoreDataHelper类,演示如何将Core Data同既有的应用程序相集成. 2. ...
- 2.6. 类型(Core Data 应用程序实践指南)
单精度浮点数与双精度浮点数:创建NSManagedObject紫雷师,如果实体中单精度或双精度浮点数类型,那么在子类里,相关特性的类型是NSNumber. 小数:涉及货币时,建议设置为小数(decim ...
- 2.7. 属性的各种设置选项(Core Data 应用程序实践指南)
可供配置的选项根据属性类型的不同有所变化,并不是每一种属性都能配置下列选项 Transient:勾选该选项,表示该属性不写入“持久化存储区”,这听起来很奇怪,但有时候,只需要把特性留在托管对象上下文就 ...
- 1.1.1.持久化存储协调器(Core Data 应用程序实践指南)
持久化存储协调器(persistent store coordinator)里面包含一份持久化存储区,而存储区里又含有数据表里的若干行数据. 与原子存储不同,SQLite数据库会在用户提交变更日志时进 ...
- 1.4.2.3. SETUP(Core Data 应用程序实践指南)
初始化Core Data的三个方法: init,初始化托管对象模型.持久化存储协调器.托管对象上下文 - (id)init { ) { NSLog(@"Running %@ '%@'&quo ...
- 1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
有些支持Core Data的内置模板是在应用程序委托里面设置Core Data的.但是为了模块化,我们通过应用程序委托惰性地创建CoreDataHelper类的实例: 初始化托管对象模型 根据托管对象 ...
随机推荐
- 优化C/C++代码的小技巧(转)
源:http://www.cnblogs.com/lizhenghn/p/3969531.html 说明: 无意看到一篇小短文,猜测作者应该是一个图形学领域的程序员或专家,介绍了在光线(射线)追踪程序 ...
- C++ 输出Cstring遇见的奇葩问题
先上代码 // webConteng.cpp : Defines the entry point for the console application. // #include "stda ...
- 1084:XX开公司<回溯>
Description 2020年,xx开了一家拥有N个员工的大公司.每天,xx都要分配N项工作给他的员工,但是,由于能力的不同,每个人对处理相同工作所需要的时间有快有慢.众所周知,xx是一个非常重视 ...
- iOS开发——GCDAsyncSocket
新进的这家公司搞智能家居,就随便整理一下其相关技术吧!首先,从GCDAsyncSocket的使用问题着手. 正如名称一样GCDAsyncSocket开源类库是以苹果的GCD多任务处理机制完成的一个异步 ...
- Bootstrap 手风琴搭配导航条实现常用菜单栏
效果 HTML代码 <div class="sidebar"> <div class="mc-search"> <div clas ...
- 深入理解viewport(转)
在移动设备上进行网页的重构或开发,首先得搞明白的就是移动设备上的viewport了,只有明白了viewport的概念以及弄清楚了跟viewport有关的meta标签的使用,才能更好地让我们的网页适配或 ...
- tomcat webdav
<servlet> <servlet-name>webdav</servlet-name> <servlet-class>org.apache.cata ...
- C语言数据类型的表示范围
1.C和C++语言中基本的数据类型有:字符型(char),整形(short, int, long), 浮点型(float, double) 类型 字节数 类型 字节数 char 1 short ...
- SpringMVC轻松学习-其他常用(四)
Spring MVC 3.0 深入 核心原理 1. 用户发送请求给服务器.url:user.do 2. 服务器收到请求.发现DispatchServlet可以处理.于是调用Disp ...
- JavaScriptConvert.SerializeObject转换出错
The length of the string exceeds the value set on the maxJsonLength property(字符串的长度超过maxjsonlength上设 ...