Erstellen eines Array Aus einer CSV-Datei Mit Objective C
Ich bin neu zu codieren, so bitte ich um Entschuldigung, wenn dies scheint wie eine einfache Frage stellen.
Ich versuche, plot-Koordinaten auf einer Karte.
Ich Lesen möchte eine CSV-Datei, und übergeben Sie die Informationen auf zwei getrennten arrays.
Dem ersten array werden NSArray *towerInfo (mit latitude, longitude und Turm Titel)
zweiten, NSArray *region (mit Turm-Titel und region) mit den gleichen count-index wie das erste array.
Im wesentlichen, glaube ich, müssen;
1) Lesen Sie die Datei in einen string.....
2) teilen Sie die Zeichenfolge in einem temporären array zu trennen, bei jeder /n/r......
3) Schleife durch die temp-array und erstellen Sie einen Turm und region-Objekt jedes mal vor dem anfügen dieser Informationen zu den beiden wichtigsten storage-arrays.
Ist dies der richtige Prozess, und wenn ja, gibt es jemanden da draußen, die post einige Beispiel-code, wie ich bin wirklich kämpfen, um dieses Recht zu bekommen.
Danke an alle im Voraus.
Chris.
Habe ich bearbeitet diese, um zu zeigen, ein Beispiel von meinem code. Ich habe das problem, dass ich erhalte Warnungen sagen
1) "die lokale Deklaration von 'dataStr' verbirgt Instanz-variable.
2) "die lokale Deklaration von 'array' verbirgt Instanz-variable.
Ich glaube, ich verstehe, was Sie bedeuten, aber ich weiß nicht, wie man sich es. Das Programm kompiliert und ausgeführt, aber das log sagt mir, dass das "array null ist."
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize dataStr;
@synthesize array;
-(IBAction)convert {
//calls the following program when the onscreen 'convert' button is pressed.
NSString *dataStr = [NSString stringWithContentsOfFile:@"Towers.csv" encoding:NSUTF8StringEncoding error:nil];
//specifies the csv file to read - stored in project root directory - and encodes specifies that the format of the file is NSUTF8. Choses not to return an error message if the reading fails
NSArray *array = [dataStr componentsSeparatedByString: @","];
//splits the string into an array by identifying data separators.
NSLog(@"array: %@", array);
//prints the array to screen
}
Keine weitere Hilfe wäre sehr geschätzt werden. Danke für die Antworten so weit.
Können Sie ein paar Beispiel Zeilen der CSV-Datei und erklären, wo die info steht?
InformationsquelleAutor user1341967 | 2012-04-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Werden Sie wahrscheinlich wollen, um zu werfen in ein paar "stringTrimmingCharactersInSet" ruft trim whitespace.
InformationsquelleAutor Hot Licks
Bezug auf Ihre Warnungen:
Würde der code erzeugt einen Fehler (keine Warnung), da müssen Sie deklarieren die Eigenschaften in der interface-Datei, bevor Sie synthetisieren Sie bei der Umsetzung. Sie erinnern sich wahrscheinlich, dass
@synthesize
generiert accessor-Methoden für Ihre Eigenschaften. Auch vor der Verwendung der@synthesize
Richtlinie, die Sie verwenden müssen, die@property
Richtlinie, auch in der Schnittstelle.Hier ist ein Beispiel:
Beachten Sie, dass die Deklaration einer Eigenschaft gefolgt von einem Typ zuordnen, in diesem Fall ist die Voreinstellung). Es gibt eine ausgezeichnete Erklärung dazu in Stephen G. Kochans Buch: Programmierung in Objective-C 2.0
Aber vorausgesetzt, für argument Willen, daß Sie ausgelassen die richtige
@interface
- Datei hier.Wenn Sie zuerst deklarieren Sie eine Eigenschaft in der
@interface
, und dann deklarieren Sie eine andere Eigenschaft in der Methode, unter Verwendung der gleichen Variablen-Namen, die Methode, die variable Vorrang vor den in der Instanz-Variablen.In Ihrem code, es würde genügen, das weglassen der Deklaration der name der variable, in etwa so:
InformationsquelleAutor Fnord23
Ich gehe davon aus, dass der Kern Ihrer Frage ist "wie das Parsen einer CSV-Datei", nicht "was tun mit den Daten, sobald es analysiert". Wenn das der Fall ist, dann schauen Sie sich die CHCSVParser Bibliothek. Ich habe es in Projekten vor und finden, dass es sehr zuverlässig ist. Es Parsen kann jede beliebige Zeichenfolge oder der Dateipfad in ein NSArray von Zeilen/Spalten für Sie. Nach, dass alles, was Sie mit den Daten tun ist bis zu Ihnen.
InformationsquelleAutor Matt J