2011-08-22 101 views
2

的的NSArray我有一个CSV与结构化数据文件如下:转换CSV文件以NSDictionaries

40.697776,-73.973605, “1 CARLTON AVENUE,纽约布鲁克林,”

40.812784,-73.952996, “1 CONVENT AVENUE,MANHATTAN,NEW YORK,”

我想将每一行转换为一个NSArray,其中包含一个包含所有字典的NSArray。我想要的是纬度,经度,地址的关键。

我是新来的目标c,所以我有一些问题搞清楚了这一点。任何帮助将不胜感激。

回答

4

没有什么会自动完成的。您需要使用现有的csv parser或编写自己的。从空的NSMutableArray开始,然后遍历CSV文件中的每一行。对于每一行,从NSMutableDictionary开始,一次添加一个值。行完成后,将NSMutableDictionary添加到NSMutableArray的末尾。该代码会看起来像下面,但它实际上取决于其CSV解析器使用:

NSMutableArray* allRows = [NSMutableArray array]; 

//how this loop is actually done depends on your CSV parser 
//if it's a SAX style parser, then it won't even be a loop, it will be a callback 
for(every row in the CSV file) { 
    //how you get these three fields also depends on your CSV parser 
    NSNumber* firstField = ?; 
    NSNumber* secondField = ?; 
    NSString* thirdField = ?; 

    NSMutableDictionary* row = [NSMutableDictionary dictionary]; 
    [row setObject:firstField forKey:@"latitude"]; 
    [row setObject:secondField forKey:@"longitude"]; 
    [row setObject:thirdField forKey:@"address"]; 
    [allRows addObject:row]; 
} 
+3

+1出于显而易见的原因 –

+0

但如果你像我一样,你可能想去看看@ DaveDeLong的CSV解析器[这里](http://stackoverflow.com/questions/3344628/where-can-i-find-a-csv-to-nsarray-parser-for-objective-c) – Mazyod

+1

@Mazyod Tom链接到在他的回答中;) –