【发布时间】:2016-09-17 09:22:34
【问题描述】:
我正在使用新的 Xcode 8 代码生成功能为我的 Core Data 模型使用 Class Definition 作为 Codegen 选项。
当我构建时,我的每个实体都会得到以下输出:
<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
在检查文件时,我可以看到以下内容:
Entity+CoreDataClass.swift:
import Foundation
import CoreData
public class Entity: NSManagedObject {
}
Entity+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。
【问题讨论】:
-
我也得到了空的导入语句。似乎是一个新的 Apple 错误。
-
看起来问题应该以比实际更好的方式处理。你看到我下面的修复了吗?看来我还是做错了事
-
是的,我发现了一个问题:当创建新的托管对象并将它们转换为我的子类之一时,它会抛出说它无法转换。类名位于当前项目命名空间之外的命名空间中。
-
我现在也在构建和测试应用程序时也遇到了同样的问题。你知道解决方法吗?
-
我将
Module字段保留为当前项目,我只是删除了空的导入语句。我还没有使用代码生成。