在Xcode 10.2上的Swift4.2中插入NSManagedObject后,我立即收到Xcode构建错误

时间:2019-04-24 23:07:29

标签: swift xcode nsmanagedobject

每次我将NSManagedObject子类添加到原始应用程序(启用CoreData)或添加到未启用CoreData的原始应用程序时,但在添加之后,Xcode(10.2.1)/ Swift(4.2)都会抛出3个错误。

我正在尝试在使用核心数据的Xcode v10.2(刚刚更新到10.2.1)中创建一个简单的应用程序。我试图通过两种方法做到这一点,即。启动一个全新的应用程序并确保选中了核心数据,还启动了一个没有选中核心数据的原始应用程序,然后添加了核心数据。创建一个实体和一些实体属性(每次编译到该点时一切正常)之后,我遇到的问题就出现了,但是,一旦我从编辑器下拉列表中添加NSManagedObject子类,就会出现这个问题。

一旦我添加了NSManagedObject,Xcode重新索引并且出现3个错误,其中两个指出“产生多个命令...”,另一个指出命令CompileSwiftSources失败,退出代码为非零。

我试图重新创建NSManagedObject,但这没有什么区别。我已按照说明添加了一个构建语句(将SWIFT_ENABLE_BATCH_MODE设置为NO),但这没有什么区别。

我不想在这里做任何花哨的事情,只是将NSManagedObject子类作为CoreData的一部分启用,这样我就可以继续在Xcode 10.2 / Swift 4.2上编写我的应用程序的其余部分了。 / p>

我也刚刚更新到Xcode 10.2.1,这没有什么区别,即。当您尝试添加NSManagedObject子类时,仍然会出现问题。

有任何想法吗?

Screen shot of compiler errors

2 个答案:

答案 0 :(得分:0)

我找到了答案!!!关键是在堆栈溢出中搜索“构建失败并显示“命令失败,返回非零退出代码失败””的错误,在这些答案中,JeffreyWang23在9月16日发表了一篇帖子,对此进行了修复。

与解决方案的链接:stackoverflow.com/a/52357296/11407686(所有文章归功于另一篇文章的作者)。

我刚刚遵循了从Xcode中删除Entity+CoreDataClass.swiftEntity+CoreDataProperties.swift的建议,然后在实体模型检查器的“类”下,将"module"更改为Current Product Module"codegen"Manual/None,然后重新创建NSManagedObject

所有错误随后消失了! :) :):)

答案 1 :(得分:0)

要解决此问题,应在项目导航器中选择xcdatamodeld文件,选择实体并按⌥⌘3(数据模型检查器)。

如果您手动创建了类,则必须将Codegen弹出窗口设置为“手动/无”,否则将隐式创建类文件。

参阅this answer

enter image description here