2012-01-16 84 views
0

使用Xcode 4.2,我使用标签栏模板创建了一个新应用程序。出于某种原因,这个模板不会给你选项,包括核心数据,所以只好按照本教程中手动添加它,我做到了:初学者iOS核心数据 - 型号为零

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
  1. 在尝试创建持久存储协调器之前,您需要实例化模型。你可以用NSManagedObjectModel的方法之一来做到这一点,比如+ mergedModelFromBundles:。请注意,如果您将nil传递给该方法,它将在主包中搜索模型,这可能是您想要的。

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

0

这一行修正:

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

“模型” 是 “TEMP”。

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