Xcode 8中现有项目的Core Data“Codegen”是什么?

3

那么,我了解到Core Data的新“Codegen”功能将类文件放入“Derived Data”而不是您的项目中...这很好。

然而,最近它创建了两个分开的类...一个您可以手动删除和重新生成,另一个可能包含您的代码/方法来处理这些对象。

我尝试关闭“Codegen”,但它似乎没有为我们的代码创建文件。 如果我们想向Core Data对象添加方法,该怎么办? - 有人知道如何使其像以前那样工作,只是没有额外的重复文件,或者有什么理由我们不应该这样做吗?

1个回答

5
如果您想将自己的代码添加到类中,只需将 Codegen 下拉菜单设置为 Category/Extension,它将仅在 Derived Data 中生成 MyClass+CoreDataProperties.h 和 MyClass+CoreDataProperties.m,然后您需要在 MyClass.h 头文件的末尾包含这些文件,就像以前一样。
顺便说一下,有时候这个设置不会保存,因此在转到另一个文件之前,请尝试手动保存并检查设置是否已保存。在构建之前清理项目,否则可能无法生成文件。

好的,我会尝试并回报。 - Ben Guild
1
因此,将其作为协议/扩展执行的方式与以前相同,但是类文件本身在该过程中仍然缺失。这有点奇怪。如果它是子类,情况就不会那么糟糕,因为您可以从另一个子类或最坏情况下从父类中复制和粘贴模板,但是对于根类,没有可用的模板? - Ben Guild
你仍然可以使用“Editor -> Create NSManagedObject Subclass”来获取类文件。 - trapper
嗯,是的,你说得对。我本来找不到那个问题。但即使在类文件中,它也会进行一些奇怪的“此文件是自动生成的,不应进行编辑”的操作。 - Ben Guild
1
当我手动生成子类时,会创建+CoreDataClass.h扩展,但不会创建基类。这是预期行为吗? - David

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接