我正在做coredata应用程序,我想在TwitterClient.sqlite中添加一些数据,但它是在我的appdelegate文件中自动创建的,如下所示。如何在coredata app中添加一些数据。
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreCoordinator;
}
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"TwitterClient.sqlite"]];
NSError *error;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel: [self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error])
{
// Handle error
}
return persistentStoreCoordinator;
}
答案 0 :(得分:4)
根据您的问题here和here,听起来您刚刚开始使用Core Data。我强烈建议您阅读Getting Started with Core Data指南以及Core Data Tutorial for iPhone OS,因为核心数据对于刚接触它的人来说可能有点复杂。此外,您可以查看这些问题的答案:
您已经开始使用上面发布的代码片段创建核心数据堆栈,但您需要设置其余部分。您需要创建一个托管对象模型(您在Xcode中设计的数据模型),以及创建一个托管对象上下文以与您的持久性存储协调器一起使用。这三个元素协同工作,可以在持久存储中保存数据。同样,我强烈建议您阅读上述资源,更详细地介绍这些资源。
设置好Core Data堆栈后,您将能够使用获取请求(和/或NSFetchedResultsController)从托管对象上下文中检索数据,并通过创建使用其中一个的新NSManagedObjects将新数据插入上下文中。来自托管对象模型的实体描述。如果这一切都没有意义,那么我再说一下你应该从上面链接的Apple文档开始。
答案 1 :(得分:0)
如果我正确理解了您的问题,那么您希望将应用程序发送到已经以某些默认数据启动的Core Data持久性存储(在本例中为sqlite)。
我刚问了同样的问题:What's the correct way to ship static (read-only) data in Core Data persistent store?
简而言之,选项通常是:1)将默认数据放在plist文件中,然后在第一次运行应用程序时编写代码以添加它,或者2)在OS X中使用使用Core Data的实用程序创建所需的sqlite文件,然后将sqlite文件作为资源添加到项目中,就像在Recipes示例代码应用程序中一样。