将 csv 导入到 iPhone 的 coredata sqlite

发布于 2024-10-14 22:32:33 字数 266 浏览 2 评论 0原文

如何将 csv 导入到 sqlite (iphopne 的核心数据)

我尝试使用 SQLite 管理器,但它将 csv 导入到新表中,我还需要导入一些日期,

  • 那么如何将数据导入到我的 sqlite数据库?我有 3 个具有不同属性的实体,并且在 csv 中,我将所有值都放在一个 csv 中(因此我可以格式化它或根据需要更改它),但是如何导入它?

  • coredata 喜欢什么日期格式?

提前致谢!

how can I import csv to sqlite (core data for iphopne)

I have tried using SQLite manager, but it imports the csv to a new table, also I need to import some dates,

  • so how to import the data to my sqlite database? I have 3 entitys with different properties, and in the csv I have all the values in one csv (so I could format it or change it as needed), but how to impor it?

  • also what is the date format that coredata likes?

thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

愚人国度 2024-10-21 22:32:33

我假设您已经设置了 CoreData 并且运行良好。您真的不想直接使用 core-data 的 sqlite DB。这是可能的,但也有点混乱。

  • 使用其中一台浮动的 CSV 扫描仪将 CSV 数据读入字段。
  • 根据需要将 CSV 字段映射到您的实体及其属性。
    您可能想要使用 CSV 标头来验证 CSV 列到属性的映射是否正确。
  • 循环遍历 CSV 的行并逐行更新您的实体。
  • 根据数据量,您可能希望定期保存上下文。

Core-Data 喜欢 NSDate。无论 CSV 文件在数据列中使用什么,您最好将 CSV 值转换为 NSDate。在你的应用程序中使用 NSDate 会减少以后的麻烦。

I assume you have setup your CoreData and that one is running fine. You don't really want to work directly with the sqlite DB of core-data. It is possible, but also a bit messy.

  • Use one of the CSV scanners floating around to read your CSV data into fields.
  • Map the CSV fields to your entities and to their attributes as needed.
    You might want to use the CSV header to verify that your mapping CSV-column-to-attribute is ok.
  • Loop through the rows of the CSV and update your entities row by row.
  • Depending on data volume you might want to save your context at regular intervals.

Core-Data likes NSDate. Whatever the CSV file uses in the data column you are best off converting the CSV value into a NSDate. Using NSDate in your App will reduce the number of headaches later.

我的黑色迷你裙 2024-10-21 22:32:33

我建议,首先使用 Core Data 在应用程序内部创建 sqlite 数据库,然后使用 Core data 创建的数据库导入 csv 数据。

您可以使用命令行命令导入 sqlite 文件中的数据。

将 sqlite 文件添加到项目中。

在 persistenceStoreCoordinator 方法中替换并添加此代码。

NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"yourDatabase.sqlite"];
/*
 Set up the store.
 For the sake of illustration, provide a pre-populated default store.
 */
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn’t exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"yourDatabase" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

更改方法

- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}

I would suggest, first create sqlite Database inside application using Core Data, then use database created by Core data to import csv data.

you can use the command line commands for importing data in the sqlite file.

Add the sqlite file to project.

replace and add this code inside the persistentStoreCoordinator method..

NSString *storePath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"yourDatabase.sqlite"];
/*
 Set up the store.
 For the sake of illustration, provide a pre-populated default store.
 */
NSFileManager *fileManager = [NSFileManager defaultManager];
// If the expected store doesn’t exist, copy the default store.
if (![fileManager fileExistsAtPath:storePath]) {
    NSString *defaultStorePath = [[NSBundle mainBundle] pathForResource:@"yourDatabase" ofType:@"sqlite"];
    if (defaultStorePath) {
        [fileManager copyItemAtPath:defaultStorePath toPath:storePath error:NULL];
    }
}

Change the method

- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文