Основы Введение в использование CHCSVParser - PullRequest
14 голосов
/ 05 августа 2011

Я внедряю CHCSVParser в свое приложение для iPhone (спасибо, Дейв!), Но я действительно не понимаю, как его использовать. Я прочитал read-me и искал несколько вопросов по SO, но все еще не уверен на 100%, что делать.

У меня есть файл .CSV с 5000 строками данных и 3-4 столбцами.

Я хочу, чтобы эти данные взамен загрузили мой UITableView вместе с соответствующим detailViewController.

Итак, я предполагаю, что мне нужно каким-то образом реализовать метод массива API, но кто-нибудь может помочь мне начать?

1 Ответ

31 голосов
/ 06 августа 2011

Я рад, что тебе нравится:)

Обычно CHCSVParser анализирует файлы CSV. Вы даете ему путь к CSV-файлу, и он вернет вам целую кучу NSStrings. То, что вы делаете после этого, полностью зависит от вас.

Допустим, вы включили файл CSV в приложение для iOS под названием «Data.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, вы соглашаетесь соблюдать условия, на которых оно становится доступным . :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...