《Core Data应用开发实践指南》一2.8 创建NSManagedObject的子类
2023-09-11 14:19:09 时间
本节书摘来自华章出版社《Core Data应用开发实践指南》一书中的第2章,第2.8节,作者 (美)Tim Roadley,更多章节内容可以访问云栖社区“华章计算机”公众号查看
托管对象模型就位之后,我们就该根据Item实体来创建NSManagedObject的子类了。有了这些子类文件,就可以在对象上面直接用“点”(.)来操作数据了,而不用再编写SQL查询语句。如果将来模型变了,那么就需要按照下面所讲的流程重新生成这些文件。尽管开发者也可以在这些生成的文件里自行添加方法,但笔者觉得不应该这么做,因为重新生成之后,原来所做的修改就会丢失。假如确实需要添加自定义的方法,那么可以从中继承子类,或是针对生成的文件创建类目。
请按下列步骤修改Grocery Dude,以便生成与NSManagedObject子类相关的文件:
执行完上述步骤之后,Xcode项目里会多出来两个新文件,分别是Item.h和Item.m。这两个文件都是根据Item实体生成的,程序清单2-1列出了Item.h的代码。各特性的出现顺序可能与书中不同。
请注意,实体中各个属性的类型与生成的类中各个特性的类型是稍有区别的。下面总结了实体的属性与托管对象的特性是如何对应起来的:
实体中的Date 属性会成为类里的NSDate 特性。
实体中的String 属性会成为类里的NSString 特性。
实体中的Decimal 属性会成为类里的NSDecimalNumber特性,而其他各种数值数据类型会成为类里的NSNumber 特性。
实体中的Binary Data 属性会成为类里的NSData特性。
实体中的Tranformable 属性,会成为类里的id特性。
查看一下Item.m文件就会发现,实现文件只是给各个特性都添加了@dynamic修饰符而已。Core Data用这种方式告诉大家:获取及设置特性值所需的方法都会动态地生成,不用开发者自己去实现。
相关文章
- EntityFramework Core 3多次Include导致查询性能低之解决方案
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之二(二十八)
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
- List多个字段标识过滤 IIS发布.net core mvc web站点 ASP.NET Core 实战:构建带有版本控制的 API 接口 ASP.NET Core 实战:使用 ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目 Using AutoFac
- 如何在树莓派 2 运行 Ubuntu Snappy Core
- Nginx: Core functionality
- 【HMS Core】运动健康服务如何查询应用已授权的权限列表
- 【HMS core】【Analytics Kit 解决方案】为何华为分析SDK在初始化之前就会获取已安装的应用列表?
- 华为联运游戏或应用审核驳回:游戏启动后弹出HMS Core更新提示,点击稍后更新,反复拉起升级提示,无法进入游戏
- .Net Core Web应用加载读取Json配置文件
- 《Core Data应用开发实践指南》一1.2 Core Data的适用场合
- 《Core Data应用开发实践指南》一2.1 托管对象模型是什么
- 《Core Data应用开发实践指南》一2.4 属性
- 《Core Data应用开发实践指南》一2.10 代码片段:demo方法
- 《Core Data应用开发实践指南》一2.13 获取托管对象
- 《Core Data应用开发实践指南》一第3章 托管对象模型的迁移
- 《Core Data应用开发实践指南》一3.1 修改托管对象模型
- 华为联运游戏或应用审核驳回:游戏启动后弹出HMS Core更新提示,点击稍后更新,反复拉起升级提示,无法进入游戏
- HMS Core Insights第四期直播回顾 – 机器学习,推开AI应用的门