Swift Xcode。从头开始重建应用程序并尝试复制以前版本的核心数据模型

Swift Xcode. Rebuilding app from scratch and trying to copy over previous version coredata model

我在构建应用程序时遇到了问题,并且在 cocoapods 和不兼容的构建设置方面遇到了很多错误。我决定重新开始并从头开始重新构建应用程序。我设法将几乎所有文件从旧应用程序复制到新应用程序并成功构建。我阅读了一些 SO 页面(即 copy coredata, another,这意味着我也可以轻松地复制 coredata xcdatamodel 文件并看到我在模型中没有任何大量数据我决定尝试它(它的数据我试图不必再次写出的结构而不是数据本身)。

我将旧的 xcdatamodeld 文件从旧的应用程序拖放到重建的应用程序中,但是当我再次 运行 时,它在

行给我一个错误
 let modelURL = NSBundle.mainBundle().URLForResource("myAppName", withExtension: "momd")!

带有错误消息 "fatal error: unexpectedly found nil while unwrapping an Optional value"

然后我注意到,当我将 myAppName.xcdatamodeld 文件从旧应用程序复制到新的重建应用程序时...它会将其复制为 myAppName.xcdatamodel 即末尾没有 d。我试过再次删除和复制,每次都一样。关于问题是什么以及如何成功复制核心数据结构的任何想法?

我最终手动重新创建了 coredata 存储,但如果我下次需要这样做,我会尝试通过 finder 复制它,而不是像您建议的那样 xcode。感谢帮助和详细说明

我刚刚遇到了同样的问题。这里的问题是,当您将模型从 Xcode 项目拖放到 Xcode 项目时,它会复制错误的扩展名,例如 xcdatamodel 而不是 xcdatamodeld。换句话说,缺少 'd' 字符(那是因为您复制的是包内容而不是包本身,请参阅在 Finder 中显示该文件的包内容)。

当您将它从 Finder 复制到所需的项目时 - 一切都很好,'d' 就位并且在带有 'momd' 扩展名的捆绑包中查找时它会匹配。