2011-08-22 104 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鏈接到在他的回答中;) –