【问题标题】:Adding entire array to nsdictionary将整个数组添加到 nsdictionary
【发布时间】:2016-05-06 15:49:51
【问题描述】:
NSDictionary *searchResponseJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

arrayOfRestaurants = searchResponseJSON[@"businesses"];

NSDictionary *businesses = [arrayOfRestaurants firstObject];

NSString *businessesID = businesses[@"id"];

我正在尝试将数组中的所有数据放入 nsdictionary 中,而不仅仅是第一个对象。有一个更好的方法吗?我似乎无法将数组中的所有数据都放入 nsdictionary

旁注:我对 Objective c 很陌生

【问题讨论】:

  • 你想为数组中的每个对象创建一个键和值都相同的字典吗? arrayOfRestaurants 还有什么?对象数组或字典数组?
  • @TejaNandamuri 给你第二个Q“对象数组还是字典数组?”:既然是JSON,“对象”字典。
  • 但是,我也有同样的问题:你想要一个id->data形式的字典吗?
  • 谢谢@AminNegm-Awad 的澄清

标签: ios objective-c nsarray


【解决方案1】:
NSDictionary *dictProducts=[response valueForKey:kViewModel];

将对象添加到数组中

 [_yourArray addObject:[dictProducts objectForKey:kProductID]];
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    [dict setObject: _yourArray forKey:@"Your_Key"];

你可以在这个类中使用相同的键来使用这个字典

【讨论】:

    【解决方案2】:

    请试试这个,它可能对你有帮助

     NSArray * myArray = [NSArray arrayWithObjects:@"hello", @"hi", @"hey"];
    
     NSDictionary * dict = [NSDictionary dictionaryWithObject:myArray forKey:@"threeLetters"];
    
     NSMutableDictionary * mutableDict = [NSMutableDictionary dictionaryWithCapacity:10];
     [mutableDict setObject:myArray forKey:@"threeLetters"];
    

    【讨论】:

      【解决方案3】:

      只需在数组上使用 for 循环迭代,您将从那里获取每个对象并执行您的工作。在您获取所有对象后我不需要您告诉我,我将编辑我的答案

       NSDictionary *searchResponseJSON = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
          if [searchResponseJSON[@"businesses"] isKindofClass: [NSDictionary class]] {
          arrayOfRestaurants = dictionary;
      
          for NSDictionary * dictionary in arrayOfRestaurants {
          print("dictionary")
          }
      

      }

      【讨论】:

      • arrayOfRestaurants 可能包含也可能不包含字典。如果它不包含字典,你的代码会崩溃!
      【解决方案4】:

      NSDictionary 是一个 unordered collection of objects,但每个包含的值都是 associated with a key,,它就像值的标签。

      NSArray * array = [NSArray arrayWithObjects:@"One",@"Two"@"Three",@"Four",nil];

      1) 如下图直接插入数组元素:

      [NSDictionary initWithObjectsAndKeys:[NSArray arrayWithObjects:@"One",@"Two"@"Three",@"Four",nil], @"FirstKey", nil];
      

      2) 在 NSDictionary 中插入 NSArray

      NSDictionary * dict = [NSDictionary dictionaryWithObject:myArray forKey:@"FirstKey"];
      

      【讨论】:

        猜你喜欢
        • 2010-11-25
        • 2018-09-29
        • 1970-01-01
        • 1970-01-01
        • 2011-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多