基础知识使用CHCSVParser简介

时间:2011-08-05 19:03:48

标签: iphone objective-c xcode parsing csv

我正在将CHCSVParser实施到我的iPhone应用程序中(感谢Dave!)但是我真的很困惑如何使用它。我已经阅读了读书并在SO上搜索了一些问题,但仍然不能100%确定要做什么。

我有一个.CSV文件,可能包含5000行数据和3-4列。

我想要这些数据作为回报,加载我的UITableView及其相应的detailViewController。

所以我假设我需要以某种方式实现API的数组方法,但任何人都可以帮我开始吗?

1 个答案:

答案 0 :(得分:31)

我很高兴你喜欢它。)

基本上,CHCSVParser 解析CSV文件。你给它一个CSV文件的路径,它会给你一大堆NSStrings。除此之外你所做的完全取决于你。

因此,假设您在iOS应用中添加了一个名为“Data.csv”的CSV文件。以下是使用CHCSVParser解析它的方法:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"csv"];

NSError *error = nil;
NSArray *rows = [NSArray arrayWithContentsOfCSVFile:path encoding:NSUTF8StringEncoding error:&error];
if (rows == nil) {
  //something went wrong; log the error and exit
  NSLog(@"error parsing file: %@", error);
  return;
}

此时,rows是一个数组。 rows中的每个元素本身都是一个表示CSV文件中单行的数组。 数组的每个元素都是NSString

因此,假设您的CSV文件如下所示:

Barringer,Arizona,United States,Earth
"Chicxulub, Extinction Event Crater",,Mexico,Earth
Tycho,,,Moon
Lonar,Maharashtra,India,Earth

如果你通过解析器运行它,你将得到相当于这个:

[NSArray arrayWithObjects:
 [NSArray arrayWithObjects:@"Barringer",@"Arizona",@"United States",@"Earth",nil],
 [NSArray arrayWithObjects:@"Chicxulub, Extinction Event Crater",@"",@"Mexico",@"Earth",nil],
 [NSArray arrayWithObjects:@"Tycho",@"",@"",@"Moon",nil],
 [NSArray arrayWithObjects:@"Lonar",@"Maharashtra",@"India",@"Earth",nil],
 nil];

你用它做什么然后是你的事。 CSV解析器对UITableView一无所知,因此您可以采用这些数据并以一种您可以轻松处理并适合您的数据模型的方式重新构建它。

此外,请记住,使用CHCSVParser即表示您同意遵守the terms under which it is made available。 :)