基础知识使用CHCSVParser简介

Jon*_*Jon 14 csv iphone xcode parsing objective-c

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

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

我希望这些数据作为回报,加载我的UITableView及其相应的detailViewController.

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

Dav*_*ong 32

我很高兴你喜欢它:)

基本上,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;
}
Run Code Online (Sandbox Code Playgroud)

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

那么我们假设您的CSV文件如下所示:

Barringer,Arizona,United States,Earth
"Chicxulub, Extinction Event Crater",,Mexico,Earth
Tycho,,,Moon
Lonar,Maharashtra,India,Earth
Run Code Online (Sandbox Code Playgroud)

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

[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];
Run Code Online (Sandbox Code Playgroud)

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

此外,请记住,通过使用CHCSVParser,您同意遵守提供该条款的条款.:)