如何在objective-c的coredata应用程序中添加我的TwitterClient.sqlite中的数据

Posted

技术标签:

【中文标题】如何在objective-c的coredata应用程序中添加我的TwitterClient.sqlite中的数据【英文标题】:How to add the data in my TwitterClient.sqlite in coredata app of objective-c 【发布时间】:2010-01-08 09:22:27 【问题描述】:

我正在做 coredata 应用程序,我想在 TwitterClient.sqlite 中添加一些数据,但它是在我的 appdelegate 文件中自动创建的,如下所示。如何在 coredata 应用中添加一些数据。

- (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;


【问题讨论】:

【参考方案1】:

根据您的问题here 和here,听起来您才刚刚开始使用 Core Data。我强烈建议阅读Getting Started with Core Data 指南以及Core Data Tutorial for iPhone OS,因为Core Data 对于刚接触它的人来说可能有点复杂。此外,您还可以查看以下问题的答案:

New to Core Data for iphone Cocoa Core Data newbie how-tos Getting started in Core Data for iPhone?

您已经开始使用上面发布的代码的 sn-p 创建核心数据堆栈,但您需要设置其余部分。您需要创建一个托管对象模型(您在 Xcode 中设计的数据模型),以及创建一个托管对象上下文以与您的持久存储协调器一起使用。这三个元素协同工作,让您可以在持久存储中保存数据。同样,我强烈建议您阅读上述资源,其中更详细地介绍了这一点。

一旦您设置了核心数据堆栈,您将能够使用获取请求(和/或 NSFetchedResultsController)从托管对象上下文中检索数据,并通过创建使用以下之一的新 NSManagedObjects 将新数据插入到上下文中托管对象模型中的实体描述。如果这一切都没有意义,我再说一遍,您应该从上面链接的 Apple 文档开始。

【讨论】:

【参考方案2】:

如果我正确理解了您的问题,那么您希望使用已经以一些默认数据开头的 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 文件作为资源添加到项目中,就像在食谱示例代码应用程序中完成的那样。

【讨论】:

这是两个不同的选项,否则我必须一个接一个地做。

以上是关于如何在objective-c的coredata应用程序中添加我的TwitterClient.sqlite中的数据的主要内容,如果未能解决你的问题,请参考以下文章

IOS/Objective-C:无法将 CoreData 值保存到 NSArray

使用 Objective-C 将 CoreData 添加到现有项目中

Objective-C:在 NavigationController 中分层传递 CoreData

基于coreData信息在objective-c中以编程方式创建图像

IOS/Objective-C/CoreData:以一对多关系编辑NSSet

如何有效地迭代 NSSet (Objective-C) - Core Data 中的多对多关系表示?