初学iOS核心数据 - 模型为零

时间:2012-01-16 06:44:24

标签: ios core-data

使用Xcode 4.2,我使用标签栏模板创建了一个新应用程序。由于某种原因,这个模板没有给你包含核心数据的选项,所以我不得不手动添加它,我按照本教程做了:

http://www.theappcodeblog.com/2011/06/30/iphone-development-tutorial-add-core-data-to-a-tab-bar-application-and-save-user-data/

但是,当我运行应用程序时,我收到此错误:

Cannot create an NSPersistentStoreCoordinator with a nil model

如何使模型不是零?我创建了Model.xcdatamodeld并添加了一个带有属性的实体(Cat)。

此外,我想让应用程序以5只猫为例,但用户可以创建更多的猫。在哪里/如何创建原始的5只猫?每次应用程序启动时创建它们似乎都不合逻辑,但是你怎么能在第一时间创建它们呢?

2 个答案:

答案 0 :(得分:2)

  1. 在尝试创建持久性存储协调器之前,您需要实例化模型。您可以使用NSManagedObjectModel的某个方法执行此操作,例如+ mergedModelFromBundles:。请注意,如果您将nil传递给该方法,它会在主包中搜索模型,这可能是您想要的。

  2. 要使用一些初始数据填充商店,您有几个选项。当您的应用启动并且您正在设置Core Data堆栈时,您可能会查找现有的持久性存储文件。如果找到它,您只需创建持久性存储,将其添加到协调器,然后继续。如果您找不到它,一个选项是创建一个新商店并以编程方式添加一些对象。另一个选项是在您的包中保留预先填充的持久性存储文件,您可以将其复制到应用程序的文档文件夹中,然后打开。第三种可能是从网络上的服务器读取默认数据,并使用它来填充新商店。

答案 1 :(得分:0)

修正了这一行:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];

“模特”是“TEMP”。

我仍然不知道如何创建5个对象。