如何在我的Twitter Client.sqlite中添加objective-c的核心数据应用程序中的数据

时间:2010-01-08 09:22:27

标签: iphone objective-c core-data

我正在做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;

}

2 个答案:

答案 0 :(得分:4)

根据您的问题herehere,听起来您刚刚开始使用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示例代码应用程序中一样。