无法确定生成CoreData代码的生成文件路径

时间:2017-01-09 10:17:56

标签: ios xcode core-data

在为不同目标构建项目时,我收到此错误:

  

无法确定Core Data代码的生成文件路径   代:   错误域= NSCocoaErrorDomain代码= 260“没有模型的当前版本   在路上   /Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld:”   的UserInfo = {NSFilePath = /用户/ ABC /文档/代码/ XYZ-IOS / ABC / iPhoneXMPP / SRT / Model.xcdatamodeld,   NSLocalizedDescription =路径中模型的当前版本   /Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld:}

错误提到的路径是“

  

/Users/abc/Documents/Code/xyz-ios/ABC/iPhoneXMPP/SRT/Model.xcdatamodeld

“但”SRT“文件夹位于我的文件夹结构中的”Temp“文件夹中。 我该如何解决这个问题?

11 个答案:

答案 0 :(得分:42)

与shallowThought的答案类似,我发现我必须首先取消选中目标,然后重新检查它,然后重新构建。

答案 1 :(得分:17)

在Xcode中,选择您的Model.xcdatamodeld模型,并在检查器中勾选新目标的“目标成员资格”复选框。

答案 2 :(得分:8)

在我的文件选择器代码生成中被选为Swift。 我选择代码生成语言作为Objective-C。 错误消失了。

选择Objective-C后

产品>清洁

然后重建项目。

这对我有用。

答案 3 :(得分:3)

手动添加核心数据后,Just Clean和Build为我工作(不是从项目开始)。

答案 4 :(得分:2)

在我的情况下,这是Model.xcdatamodeld与远程(源或头)合并时发生冲突的结果。 GIT并没有以某种方式检测到此冲突,并以“无冲突”的方式滑过。

解决方案:打开Model.xcdatamodels格式为xml(使用textEditor)并搜索冲突(>>>)。解决冲突并保存。

答案 5 :(得分:2)

就我而言,我已重命名了.xcdatamodel所在的目录,这导致旧文件名条目没有从我的Target的Compile Sources阶段中删除。

我要做的就是从Compile Sources阶段中删除旧文件,方法是搜索xcdatamodeld,然后删除目标的Build Phases中的相关条目(现在不相关...)。标签:

Remove irrelevant .xcdatamodel files from the <code>Compile Sources</code> phase

  • 不要忘记对包含您的Core Data数据模型的目标 ALL 执行此操作。

完成后,请确保将您当前的实际.xcdatamodeld文件添加到目标中。您可以这样做:

a)通过在Xcode的 Project Navigator (左列->第一个图标)中单击文件:

Select your .xcdatamodeld in Xcode's Project Navigator

b),然后在Xcode的 File Inspector (右列->第一个图标)中选中您希望此文件成为其一部分的所有目标的框。 ,位于Target Membership下:

Tick all the targets you want your Core Data model to be a part of

答案 6 :(得分:1)

上面给出的答案是正确的,但如果这些不起作用,那么:

  1. 制作模型的副本并将其存储在某个地方
  2. 从Xcode中删除模型
  3. 将模型再次添加到要将其添加到
  4. 的任何文件夹中

    这解决了我的问题。希望这会有所帮助。

答案 7 :(得分:1)

如果您使用的是NSPersistentContainer,则可以从iOS 10+开始使用。 您需要更改目标&gt;一般&gt;部署信息&gt;部署目标为10.0 +。

然后,产品&gt;清洁&amp;建立。有效。

答案 8 :(得分:1)

模块检查员&gt;模块&gt;当前产品模块

https://www.dropbox.com/developers/documentation/dotnet

之后清理并建立。

答案 9 :(得分:0)

就我而言,我试图构建一个外部驱动器。 将项目复制到内部驱动器,它将起作用。

答案 10 :(得分:0)

就我而言,我是在pod项目.xcworkspace中保存了.xdatamodelid的新版本,而不是原始的xcproject。将其保存在原始版本中可以解决我的问题。