2015-02-10 44 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]; 
}