【问题标题】:can not create subclasses of managed objects无法创建托管对象的子类
【发布时间】:2016-11-17 09:48:25
【问题描述】:

来自 documentation (What's New In Core Data)

Xcode 自动子类生成 Xcode 现在支持在建模工具中自动生成 NSManagedObject 子类。在实体检查器中: Manual/None 是默认的,也是以前的行为;在这种情况下,您应该实现自己的子类或使用 NSManagedObject。 Category/Extension 在名为 ClassName+CoreDataGeneratedProperties 的文件中生成类扩展。您需要声明/实现主类(如果在 Obj-C 中,扩展可以通过头文件导入名为 ClassName.h)。 - 类定义生成命名为 ClassName+CoreDataClass 的子类文件以及为 Category/Extension 生成的文件。 生成的文件放置在 DerivedData 中,并在保存模型后的第一次构建时重新构建。它们也被 Xcode 索引,因此通过命令单击引用和按文件名快速打开是可行的。

无论我选择什么,它都不会生成。

我可能做错了什么或不完整,不是吗?

【问题讨论】:

    标签: ios objective-c xcode core-data xcode8


    【解决方案1】:

    如果您将“Codegen”设置为“Class Definition”,就像在您的示例中一样,Xcode 确实会生成 NSManagedObject 子类,但您实际上并没有在您的项目中看到。就像您发布的报价中所述,文件是在

    中生成的

    ~/Library/Developer/Xcode/DerivedData/...

    您在项目中看不到它们,只有派生数据中的文件,您不必关心这些文件。 Xcode 确实有一个引用,所以命令+单击代码会按预期跳转到实现,而且您可以编写扩展等。

    this answer中查找详细信息。

    【讨论】:

    • 这是否意味着我不应该查看/更改文件?我的意思是,如果更改文件是个好主意,明智的 xcode 会向我显示文件。
    • 聪明的 Xcode 声称可以神奇地改变它们。是的,您在项目中看不到它们,只有派生数据中的文件,您不必关心这些文件。 Xcode 确实有一个引用,所以命令+单击代码会按预期跳转到实现。
    猜你喜欢
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 1970-01-01
    • 2018-05-15
    • 2017-03-07
    • 1970-01-01
    相关资源
    最近更新 更多