Creating an Array From a CSV File Using Objective C

后端 未结 3 487
野性不改
野性不改 2021-01-03 02:51

I\'m new to coding so please excuse me if this seems like a simple question.

I\'m trying to plot coordinates on a map.

I want to read a CSV file and pass the

相关标签:
3条回答
  • 2021-01-03 03:30
    NSString* fileContents = [NSString stringWithContentsOfURL:filename ...];
    NSArray* rows = [fileContents componentsSeparatedByString:@"\n"];
    for (...
        NSString* row = [rows objectAtIndex:n];
        NSArray* columns = [row componentsSeparatedByString:@","];
    ...
    

    You'll probably want to throw in a few "stringTrimmingCharactersInSet" calls to trim whitespace.

    0 讨论(0)
  • 2021-01-03 03:36

    Concerning your warnings:

    Your code would produce an error (not a warning), since you need to declare your properties in the interface file before you synthesize them in the implementation. You probably remember that @synthesize generates accessor methods for your properties. Also, before using the @synthesize directive, you need to use the @property directive, also in the interface. Here's an example:

    @interface MyObject : NSObject {
        NSString *myString;
    }
    @property (assign) NSString *myString;
    @end
    
    @implementation MyObject
    @synthesize myString;
      // funky code here
    @end
    

    Note that the property declaration is followed by a type (assign in this case, which is the default). There's an excellent explanation about this in Stephen G. Kochans's book: Programming in Objective-C 2.0


    But assuming for argument's sake, that you omitted the correct @interface file here. If you first declare a property in the @interface, and then declare another property in your method, using the same variable name, the method variable will take precedence over the instance variable.

    In your code, it would suffice to omit the declaring of the variable name, like so:

    dataStr = [NSString stringWithContentsOfFile:@"Towers.csv" encoding:NSUTF8StringEncoding error:nil];    
    array = [dataStr componentsSeparatedByString: @","];
    
    0 讨论(0)
  • 2021-01-03 03:42

    I'm assuming that the core of your question is "how to parse a CSV file", not "what to do with the data once it's parsed". If that's the case, then check out the CHCSVParser library. I have used it in projects before and find it to be very reliable. It can parse any arbitrary string or filepath into an NSArray of rows/columns for you. After that, whatever you do with the data is up to you.

    0 讨论(0)
提交回复
热议问题