xcode 7 生成带有附加 CoreDataProperties 类别的核心数据实体

2023-12-26

我在 xcode 7 中有一个奇怪的新功能,当我生成新的 NSManagedObject 子类时,xcode 创建两个类:实体及其 CoreDataProperties 类别,其中包含完整的实现。下图是我的意思的例子。

我找不到任何关于此的记录信息,谁可以解释为什么它如此有效


我刚刚注意到这一点,也找不到任何有关它的文档,但我已经尝试过这个新功能,它的工作原理如下。当您第一次从 Core Data 模型生成 NSManagedObject 子类时,Xcode 将生成 4 个文件:

DBUser.h

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

NS_ASSUME_NONNULL_BEGIN

@interface DBUser : NSManagedObject

// Insert code here to declare functionality of your managed object subclass

@end

NS_ASSUME_NONNULL_END

#import "DBUser+CoreDataProperties.h"

DBUser.m

#import "DBUser.h"

@implementation DBUser

// Insert code here to add functionality to your managed object subclass

@end

DBUser+CoreDataProperties.h

#import "DBUser.h"

NS_ASSUME_NONNULL_BEGIN

@interface DBUser (CoreDataProperties)

@property (nullable, nonatomic, retain) NSNumber *id;
@property (nullable, nonatomic, retain) NSString *name;

@end

NS_ASSUME_NONNULL_END

DBUser+CoreDataProperties.m

#import "DBUser+CoreDataProperties.h"

@implementation DBUser (CoreDataProperties)

@dynamic id;
@dynamic name;

@end

正如您现在所看到的,所有属性都位于带有类别(CoreDataProperties)的单独文件中。稍后,如果您为同一模型生成 NSManagedObject 子类,Xcode 7 将仅重新生成 2 个具有类别的文件(DBUser+CoreDataProperties.h 和 DBUser+CoreDataProperties.m)以更新模型中的所有属性,但不会对其他 2 个文件进行任何更改(DBUser.h 和 DBUser.m),因此您可以使用这两个文件添加一些自定义方法或属性等。

在以前的版本中,Xcode 始终只生成 2 个文件(DBUser.h 和 DBUser.m),并将属性放在那里,因此您无法轻松修改这些文件,因为每次重新生成子类时您的自定义实现都会被删除。因此,手动创建一个类别并将方法放入类别中是一种常见的做法,这与我们在 Xcode 7 中看到的相反。然而,这有很多缺点,因为我们必须使用一个类别来实现我们的方法,但它不会允许做某些事情,现在我们可以轻松修改主界面和实现文件,这允许我们用它做任何事情。欢呼!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

xcode 7 生成带有附加 CoreDataProperties 类别的核心数据实体 的相关文章

随机推荐

  • 唤醒 Heroku 应用程序

    因此 我的 heroku NODE js 应用程序一直在运行 今天我通过我的 url 再次尝试它 但由于某种原因 它给了我一条应用程序错误消息 我阅读并登录到我的仪表板 它说该应用程序正在睡眠 我有 Heroku 的免费套餐 我知道该应用程
  • 如何删除 ExpandableListView 中父级和子级之间的特定空间

    Can you help me identify why there is a space between the group and the child In my case I want spaces between all group
  • Java矩阵运行时错误

    练习信 给定一个 m x n 元素的矩阵 m 行 n 列 按螺旋顺序返回矩阵的所有元素 例如 给定以下矩阵 1 2 3 4 5 6 7 8 9 You should return 1 2 3 6 9 8 7 4 5 给定代码 public
  • 按住按钮时运行代码

    我是 Unity 和构建游戏的新手 我使用 2 个按钮 IncreaseButton DecreaseButton 我遇到的问题是按钮回调函数仅在用户单击按钮时调用一次 但在按住按钮时不会调用 如何让按钮在按住时重复调用 Code publ
  • 如何以编程方式为 Django 中的给定模型生成 CREATE TABLE SQL 语句?

    我需要以编程方式生成给定的 CREATE TABLE 语句不受管理的我的 Django 应用程序中的模型 managed False 由于我正在处理旧数据库 因此我不想创建迁移并使用sqlmigrate The manage py sql命
  • Discord.py 机器人可以不区分大小写吗?

    我现在正在制作一个不和谐的机器人 如果我使用大写字母 不使用大写字母 它不会响应 有没有办法让机器人检测消息 即使它们是大写 小写 还有一种方法可以让机器人对空格做同样的事情 如果我不小心忘记放空格 或者不小心将两个单词合并在一起 或者我是
  • 如何在 QTextEdit 中为 QTextFrame 或 QTextBlock 提供背景图像?

    我正在开发一个 IM 工具 作为它的一部分 我必须开发一个BubbleChatWidget所有消息项都有一个bubble like背景图像 我以为我可以实现我的目标QTextEidt 但我不知道如何给出 QTextFrame 或QTextB
  • 在 Git hook 中获取提交消息

    我想在 Git 提交之前检查提交消息 我使用预提交挂钩来执行此操作 但我找不到在中获取提交消息的方法 git 预提交脚本 我怎样才能得到它 In the pre commit hook the commit message usually
  • Firebase 控制台:如何指定通知的 click_action

    我实现了 Firebase 并测试了 Firebase 通知 当应用程序位于前台时 我没有问题 我实现了一项扩展的服务Firebase消息服务并处理消息和数据收到消息时 当应用程序在后台运行时 我遇到问题 我想发送一条通知 打开特定活动并执
  • 如何在 PHP 中获取当前日期和时间?

    哪个 PHP 函数可以返回当前日期 时间 时间将以您的服务器时间为准 一个简单的解决方法是使用以下命令手动设置时区date default timezone set http php net manual en function date
  • 将 Arraylist 作为参数传递给函数[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个整
  • 错误:只有字符串可以转换为符号

    我不太精通 R 但最近安装了 ggpubr 包 因为想要制作配对箱线图 我尝试过使用 ggpaired question1 cond1 question1 q1 cond2 question1 q2 fill condition palet
  • Mysql DB 表行消失

    最近发生了一个非常奇怪的 对我来说 问题 在接受用户提交数据的应用程序中 以下情况随机发生 存储用户提交数据的数据库表中的行是disappearing 请注意除 INSERT 语句外 没有对数据库表发出 DELETE DROP TRUNCA
  • 逐列打印二维数组

    这个非常基本的代码逐行打印我的二维数组 public class scratchwork public static void main String args throws InterruptedException int test ne
  • VS2012 RC 中不识别外键

    经过昨天的大量帮助 我在 asp net4 beta 中遇到了一个已知错误 我升级到 VS2012 RC Express 4 5 现在 VS 在我的模型中报告了两个错误 这些错误以前是正常的 找不到类型或命名空间名称 ForeignKeyA
  • 带有多个可选搜索词的参数化查询

    我有一个包含大量数据的 Web 应用程序 以及一个包含多个字段 例如名称 状态 日期等 的搜索 过滤功能 我一直在对常规 非搜索 查询使用这样的参数化查询 id POST itemID db mysqli connect host user
  • 应用程序传输安全性已阻止明文 HTTP (http://) 资源加载,因为它不安全。

    据说临时异常可以通过应用程序的 Info plist 文件进行配置 根据其他答案 我将此条目添加到 info plist 中 但它没有帮助 更糟糕的是 在我更改 xml 文件后 当我尝试在 iPhone 上运行该应用程序而不是在模拟器上运行
  • 使用 Kendo Grid,如何更改工具栏中“创建”按钮上的措辞?

    我正在使用 Kendo 网格 我添加了 创建 来执行记录的内联添加 如何更改添加按钮上的措辞 目前它显示为 添加新记录 我想将其简化为仅读取 添加 并且我还想保留相同的图标 我的代码如下所示 reports kendoGrid dataSo
  • 如何根据另一个查找表/数据框自动插入一个数据框的值?

    我有一个数据框和一张查找表 我想要的是比较df dat value with df lookup threshold 如果value落入threshold范围 然后创建一个新列transfer in df dat使其值为 从线性插值tran
  • xcode 7 生成带有附加 CoreDataProperties 类别的核心数据实体

    我在 xcode 7 中有一个奇怪的新功能 当我生成新的 NSManagedObject 子类时 xcode 创建两个类 实体及其 CoreDataProperties 类别 其中包含完整的实现 下图是我的意思的例子 我找不到任何关于此的记