【问题标题】:Put multiple arrays in Dictionary将多个数组放入字典
【发布时间】:2015-04-10 02:57:32
【问题描述】:

我正在使用 for 循环多次解析 CSV 文件,这里我需要将这些数组一一存储在字典中。堆栈中关于将 NSArray 添加到 NSDictionary 的问题非常少。我正在用下面的代码解析 CSV,但我在 NSDictionary 中存储时遇到了麻烦,程序正在终止并在将字符串分配给字典时显示警告

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];
  }

【问题讨论】:

  • 什么是问题,错误?
  • 检查我的编辑@Tirth

标签: ios objective-c dictionary nsarray


【解决方案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.

【讨论】:

    【解决方案2】:

    如果我理解正确,您想将数组添加到字典中,键是整数 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];
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多