Erfinden Sie das Rad nicht neu: CHCSVParser ist ein nativer CSV-Parser, der in Objective-C geschrieben wurde. Er kann Felder in Anführungszeichen, escapete Zeichen usw. korrekt verarbeiten. Er verfügt über Komfortmethoden ( +[NSArray arrayWithContentsOfCSVFile:...]
) und unterteilt das Lesen der Datei, so dass keine Warnungen über zu wenig Speicherplatz ausgegeben werden.
Hier ist (mehr oder weniger), wie Sie es verwenden würden. Die Tatsache, dass die CSV-Datei remote ist, erschwert die Dinge ein wenig, aber nicht viel (Sie müssen den Inhalt der URL in eine Zeichenfolge herunterladen und diese Zeichenfolge dann an den Parser übergeben).
#import "CHCSV.h"
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSString * csv = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://download.finance.yahoo.com/d/quotes.csv?s=RHT+MSFT&f=sb2b3jk"]];
NSArray * rows = [NSArray arrayWithContentsOfCSVString:csv encoding:NSUTF8StringEncoding error:nil];
//You can also do: rows = [csv CSVComponents];
NSLog(@"rows: %@", rows);
[pool drain];
return 0;
}
Diese Protokolle:
2010-12-23 09:05:44.431 CHCSVParser[99377:a0f] (
(
RHT,
"46.48",
"46.46",
"26.51",
"49.00"
),
(
MSFT,
"28.23",
"28.22",
"22.73",
"31.58"
),
(
""
)
)
Sie gibt eine NSArray
von NSArrays
von NSStrings
.