-[NSURL path]
не делать то, что вы ожидали.
Если у меня есть URL http://stackoverflow.com/questions/4636428
, то это -path
is /questions/4636428
. Когда вы передадите этот путь в CHCSVParser, он попытается открыть этот путь в локальной системе. Поскольку этот файл не существует, вы не сможете его открыть.
Что вам нужно сделать (как указывает Уолтер), загрузить файл CSV локально, а затем открыть его. Вы можете загрузить файл несколькими способами (+[NSString stringWithContentsOfURL:...]
, NSURLConnection
и т. Д.). После того, как вы сохранили файл, сохраненный локально на диске, или строку CSV в памяти, вы можете передать ее парсеру.
Если это очень большой файл, вы должны указать alloc
/init
a CHCSVParser
с указанием пути к локальной копии файла CSV. Затем синтаксический анализатор будет читать его пополам и сообщать вам, что он находит, через обратные вызовы делегатов.
Если файл CSV не очень большой, то вы можете сделать:
NSString * csv = ...; //the NSString containing the contents of the CSV file
NSArray * rows = [csv CSVComponents];
Это возвращает NSArray
из NSArrays
в NSStrings
.
Подобно этому последнему подход использует метод NSArray
категории:
NSString * csv = ...;
NSError * error = nil;
NSArray * rows = [NSArray arrayWithContentsOfCSVString:csv encoding:[csv fastestEncoding] error:&error];
Это будет возвращать ту же структуру (NSArray
из NSArrays
из NSStrings
), но он также предоставит вам NSError
объект, если он встречает синтаксическую ошибку в файле CSV (т. е. неверный CSV).
Я могу быть уверен, что сам человек ответит на ваш вопрос. Просто подожди. –
@ Джакоб звучит как разумно безопасная ставка. ;) –