我有一个应用程序在iPhone模拟器上运行良好已经有一段时间了。最近,我决定在另一个项目中重用数据模型和相关类,所以我将它们从这个项目窗口拖到另一个项目窗口,然后告诉Xcode不要复制,只是为了进行引用。起初,这不起作用,所以我跳过许多圈,试图修复它(我可能会在另一篇文章中更多地询问这个问题)。在这一切之后,我重新编译并尝试运行最初的应用程序--它已经不再工作了。在进一步的调查中,我发现当我重新编译最初的应用程序时,我最终得到了一个包含.momd包的包,但是它只包含一个Versioninfo.plist文件--没有.mom文件,也没有我期待看到的.omo文件。我不记得对原来的应用程序做过任何修改。我没有收到任何警告。我只是得到了一个不完整的.momd包(而且,毫不奇怪,我的应用程序现在崩溃了)。
这里发生了什么事?
顺便说一句,这个应用程序现在崩溃了,其中有这样的消息:终止应用程序,原因是非正常异常'NSInvalidArgumentException',原因:'* -__NSArrayM插入对象:atIndex::object不能为零‘
在执行这一行代码时得到的结果:
self.productRegistry = [[UIManagedDocument alloc] initWithFileURL:self.productRegistryURL];发布于 2012-04-26 15:05:23
通过使用Finder更仔细地查看项目目录中的文件位置,我发现了这一点。在Xcode窗口中,一切看起来都正常,但在实际的项目目录中,我发现.datamodeld包最终位于项目目录的顶层--与项目包本身处于同一级别。Xcode显然不喜欢这样,但不幸的是它没有抱怨--它只是创建了部分构建输出。一旦我将.datamodeld包移动到与项目代码的其余部分相同的文件夹中,一切就都正常了。
这似乎只是一种怪癖。我希望Xcode要么看到一切都很好,并正确地构建,要么看到事情不像应该的那样,并且失败了。在这种情况下,它没有正确地构建,而是对它保持沉默。
希望有一天这个答案能帮助到别人。
https://stackoverflow.com/questions/9964681
复制相似问题