核心数据模型无法正常工作

时间:2012-06-16 08:47:09

标签: ios core-data xcode4.3 core-data-migration xcdatamodel

我正在更新使用CoreData的应用。在完整版本上我做了它,以便用户可以将他/她自己的数据保存在数据库中(应用程序填充预填充的数据库)。

该应用程序是在Xcode 4.2上编写的,部署目标为iOS 4.1,因此在ARC和Storyboards之前。

现在我想稍微更新一下,将部署目标设置为5.1并将代码调整到最新的Xcode,因此实现了Storyboard和ARC,因为我现在习惯了它,我发现它更直观保留这段代码。 所以我从零开始创建一个新项目,我构建了故事板,我拖动了1.0版本中的大部分内容。此外,我还检查过"编译源"和#34;复制捆绑资源"在Build Phases选项卡上没有问题,包括我拖过的所有内容。

但是我遇到了数据库问题。当我尝试运行App时崩溃告诉我:

'Cannot create an NSPersistentStoreCoordinator with a nil model'

所以我不确定我在这里做错了什么。我不想更改CoreData模型,因为一切都保持不变,我没有添加或删除任何实体或属性。所以我觉得把旧模式拖到新项目就足够了。

这里有什么建议吗?我可以轻松地从头开始编写整个codeData内容,因为它并不是非常复杂,但我相信完整版本并保存自定义数据的用户会非常沮丧。

任何建议都将非常受欢迎。提前谢谢!

1 个答案:

答案 0 :(得分:0)

您需要检查AppDelegate方法managedObjectModel。确保它检索模型(使用NSLog语句检查)。最有可能的是它与某些命名约定有关:

NSString *modelPath = [[NSBundle mainBundle] 
    pathForResource:@"Model" ofType:@"momd"];
NSURL *modelURL = [NSURL fileURLWithPath:modelPath];

专门检查您的modelPath

此外,可能发生的是,当您导入模型时,您并未真正导入所有文件。该模型实际上是一个名为YourModel.xcdatamodeld的目录,其中最终d可能代表“目录”。在Finder中,您实际上可以右键单击并选择Show Package Contents以确保存在必要的文件(甚至更好地使用命令行)。里面应该有一个名为YourModel.xcdatamodel的文件(没有d)。另一方面,至少应该有一个名为content的文件(有时也是layout)。这是一个简单的XML文件。

确保将所有这些导入到项目中!