2015-02-10 63 views
0

我使用for循環多次解析CSV文件,這裏我需要將這些數組逐個存儲到字典中。關於將NSArray添加到NSDictionary中,堆棧中的問題非常少。我解析CSV與下面的代碼,但是我在NSDictionary中存儲strucked,該計劃將終止,並顯示警告在指定字符串字典將多個數組放入字典

for (i=0; i<=57; i++) { 
    NSString *keysString = [csvArray objectAtIndex:i]; 
    NSArray *keysArray = [keysString componentsSeparatedByString:@","]; 
    NSLog(@"Serail No %d %@",i,keysArray); 
    NSString *string = [NSString stringWithFormat:@"%d", i]; 
    NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithObjects: keysArray forKeys: string]; 
    } 
+0

什麼是問題,錯誤? – Tirth 2015-02-10 06:39:01

+0

檢查我的編輯@Tirth – 2015-02-10 06:46:23

回答

1
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init]; 

for (i=0; i<=57; i++) { 
NSString *keysString = [csvArray objectAtIndex:i]; 
NSArray *keysArray = [keysString componentsSeparatedByString:@","]; 
NSString *key = [NSString stringWithFormat:@"serial%d",i]; 
[dict setObject:keysArray forKey:key]; 

} 

要返回從字典數據,

NSArray *array = [dict valueForKey:@"serial24"];//to get array 24. 
+0

thanq現在工作 – 2015-02-10 06:49:01

1

如果我正確理解你,你想添加數組到字典中,其中的鍵值是整數i的字符串值?什麼,你需要做的就是分配你的字典外循環 -

NSMutableDictionary *dict=[NSMutableDictionary new]; 
for (i=0; i<=57; i++) { 
    NSString *keysString = [csvArray objectAtIndex:i]; 
    NSArray *keysArray = [keysString componentsSeparatedByString:@","]; 
    NSLog(@"Serial No %d %@",i,keysArray); 
    NSString *string = [NSString stringWithFormat:@"%d", i]; 
    dict[string]=keysArray; 
} 

我不知道你爲什麼會想這樣做,因爲這基本上是一個數組。你可以簡單地做 -

NSMutableArray *outputArray=[NSMutableArray new]; 
for (NSString *keysString in csvArray) { 
    NSArray *keysArray = [keysString componentsSeparatedByString:@","]; 
    [outputArray addObject:keysArray]; 
}