核心数据代码生成导致构建失败

时间:2016-09-17 09:22:34

标签: xcode core-data xcode8

我使用Class Definition作为Codegen选项,为我的核心数据模型使用新的Xcode 8代码生成功能。

当我构建时,我为每个实体获得以下输出:

<unknown>:0: error: no such file or directory: ‘/path/to/DerivedSources/CoreDataGenerated/Model/.Entity+CoreDataClass.swift'
<unknown>:0: error: no such file or directory: ‘/path/to/DerivedSources/CoreDataGenerated/Model/.Entity+CoreDataProperties.swift’
...
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc failed with exit code 1

在检查文件时,我可以看到以下内容:

实体+ CoreDataClass.swift:

import Foundation
import CoreData


public class Entity: NSManagedObject {

}

实体+ CoreDataProperties.swift

import Foundation
import CoreData
import 

extension Entity {

    @nonobjc public class func fetchRequest() -> NSFetchRequest<Entity> {
        return NSFetchRequest<Entity>(entityName: “Entity");
    }

    @NSManaged public var title: String?

}

在第二个中,显而易见的事情是不应该存在空的import语句,我猜测它正在导致崩溃。

我可能做错了吗?这是一个错误吗?

我已经尝试了所有通常的,干净的,干净的构建文件夹,重新启动Xcode / Mac而没有运气。

2 个答案:

答案 0 :(得分:2)

数据模型检查器中实体的Module字段中有一个值,我删除了它,所以它现在为空,占位符显示为“全局命名空间”。这似乎有效!

答案 1 :(得分:0)

Core Data很大程度上基于字符串。为您的实体使用诸如“ Entity”之类的名称可能会导致意外结果。还要避免在数据模型中使用名称,例如“描述”,“项目”或“属性”等。如果确实要使用这些名称,请给它们加上前缀:可以使用“ My_entity”或“ ACEntity”之类的名称。