使用Xcode 4.2,我使用标签栏模板创建了一个新应用程序。由于某种原因,这个模板没有给你包含核心数据的选项,所以我不得不手动添加它,我按照本教程做了:
但是,当我运行应用程序时,我收到此错误:
Cannot create an NSPersistentStoreCoordinator with a nil model
如何使模型不是零?我创建了Model.xcdatamodeld并添加了一个带有属性的实体(Cat)。
此外,我想让应用程序以5只猫为例,但用户可以创建更多的猫。在哪里/如何创建原始的5只猫?每次应用程序启动时创建它们似乎都不合逻辑,但是你怎么能在第一时间创建它们呢?
答案 0 :(得分:2)
在尝试创建持久性存储协调器之前,您需要实例化模型。您可以使用NSManagedObjectModel的某个方法执行此操作,例如+ mergedModelFromBundles:
。请注意,如果您将nil传递给该方法,它会在主包中搜索模型,这可能是您想要的。
要使用一些初始数据填充商店,您有几个选项。当您的应用启动并且您正在设置Core Data堆栈时,您可能会查找现有的持久性存储文件。如果找到它,您只需创建持久性存储,将其添加到协调器,然后继续。如果您找不到它,一个选项是创建一个新商店并以编程方式添加一些对象。另一个选项是在您的包中保留预先填充的持久性存储文件,您可以将其复制到应用程序的文档文件夹中,然后打开。第三种可能是从网络上的服务器读取默认数据,并使用它来填充新商店。
答案 1 :(得分:0)
修正了这一行:
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
“模特”是“TEMP”。
我仍然不知道如何创建5个对象。