【问题标题】:How get a value from NSDictionary and move it to an NSArray如何从 NSDictionary 获取值并将其移动到 NSArray
【发布时间】:2017-07-05 00:52:03
【问题描述】:

我确信这个问题已经在这里被问过几十次了,但我似乎找不到任何接近我需要的东西。我在解决这个问题时遇到了一点问题。我需要从NSDictionary 中获取一个值并将其放入NSArray

    NSDictionary *dictionary = @{@"ID1":@{
                                   @"mainPhone": @"<number>",
                                   @"Address": @"<address>",
                                   @"City": @"<Tulsa, OK>",
                                   @"Date": @"1-1-2017",
                                   @"Person1": @{
                                               @"First": @"<FirstName>",
                                               @"Last":  @"<LastName>",
                                               @"Phone": @"<number>",
                                               @"Email": @"email@gmail.com",
                                               @"Birth": @"<date>",
                                               @"ID":    @"12345",
                                   },
                                   @"Person2": @{
                                               @"First": @"<FirstName>",
                                               @"Last":  @"<LastName>",
                                               @"Phone": @"<number>",
                                               @"Email": @"email@gmail.com",
                                               @"Birth": @"<date>",
                                               @"ID":    @"12345",
                              },
                              @"ID2":@{
                                   @"mainPhone": @"<number>",
                                   @"Address": @"<address>",
                                   @"City": @"<Tulsa, OK>",
                                   @"Date": @"1-1-2017",
                                   @"Person3": @{
                                               @"First": @"<FirstName>",
                                               @"Last":  @"<LastName>",
                                               @"Phone": @"<number>",
                                               @"Email": @"email@gmail.com",
                                               @"Birth": @"<date>",
                                               @"ID":    @"12345",
                                   },
                                   @"Person4": @{
                                               @"First": @"<FirstName>",
                                               @"Last":  @"<LastName>",
                                               @"Phone": @"<number>",
                                               @"Email": @"email@gmail.com",
                                               @"Birth": @"<date>",
                                               @"ID":    @"12345",
                              },
              };

在上面的示例字典中,我需要获取第 3 层字典下的键 First 并将其加载到数组中。标记为IDPerson 的字典将被分配单独的ID 号,这将是唯一不是静态的键。提前致谢。

【问题讨论】:

  • 就用objectForKey?[dictionary objectForKey:@"ID"] objectForKey:@"Person"] objectForKey:@"First"]]]
  • 你也可以[dict valueForKeyPath:@"key1.@specialKey.key3"]
  • 首先检查您的打开和关闭大括号。对吗?
  • @Mukesh,我相信是的,我所拥有的只是我真正使用的一个小例子。
  • 真的那么简单吗?我了解如何获取键的值,但我认为将它们放入 NSArray 中还有更多。

标签: ios objective-c dictionary nsarray


【解决方案1】:

为此,您可以遍历字典和第一个 idKey,然后访问该字典并通过循环访问其详细信息。

for (NSString *key in dictionary) {
    NSDictionary *idDic = [dictionary objectForKey:key];
    for (NSString *idDicKey in idDic) {
        if ([[idDic objectForKey:idDicKey] isKindOfClass:[NSDictionary class]]) {
            NSString *firstName = [dictionary valueForKeyPath:[NSString stringWithFormat:@"%@.%@.First",key, idDicKey]];
            NSLog(@"%@",firstName);
        }
    }
}

【讨论】:

  • 您还可以使用 if/else 条件来获取其他键值,例如 mainPhone、Address、City 等。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 2013-08-23
  • 1970-01-01
  • 1970-01-01
  • 2013-08-16
相关资源
最近更新 更多