【问题标题】:Moving through a NSDictionary getting objects that you do not know the 'Key' for? IOS通过 NSDictionary 获取您不知道“键”的对象? IOS
【发布时间】:2012-07-05 09:15:09
【问题描述】:

我有一个从网络服务获得的 NSDictionary。此字典中的每个对象都包含一个数组。我不知道 NSDictionary 中会有多少对象,也不知道每个对象的“键”是什么。我只知道它会是一个数组字典。

如何通过字典将对象的名称及其内容读取到数组中?

到目前为止,我与字典的所有交易都可以使用

[anotherDict objectForKey:@"accounts"]

因为我知道“钥匙”;提前期待。

非常感谢, -代码

【问题讨论】:

    标签: iphone objective-c ios xcode


    【解决方案1】:

    NSDictionary 从 iOS 4.0 开始有方法:enumerateKeysAndObjectsUsingBlock:。这很简单,它接收一个块对象来操作字典中的条目。

    一个例子:

    [anotherDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
       NSArray *arr = obj;
       //Do something
    }
    

    【讨论】:

      【解决方案2】:

      NSDictionary 类有一个实例方法 -allKeys,它为所有键返回一个 NSArrayNSStrings

      【讨论】:

        【解决方案3】:

        最简单的方法是通过 allKeys 实例方法获取 allKeys

        NSArray *keys = [myDictionary allKeys];
        

        然后为每个键迭代字典。

        for (NSString *k in keys)
        {
            id object = [myDictionary objectForKey:k];
        }
        

        您还可以按顺序获取键,就好像值是使用排序的一样

        NSArray *sortedKeys = [myDictionary keysSortedByValueUsingSelector:@selector(compare:)];
        

        【讨论】:

          【解决方案4】:

          你可以这样做:

          NSArray * keys = [dictionnary allKeys];
          for (NSString *key in keys) {
             NSArray *tmp = [dictionnary objectForKey:key];
          }
          

          【讨论】:

            【解决方案5】:

            我不是专业人士,但我知道您可以获得字典的所有键

             NSLog(@"%@",[Your_Dictionary allKeys]);
            

            这将给出该字典中的键数组。

            【讨论】:

              猜你喜欢
              • 2016-10-05
              • 2017-06-03
              • 2023-04-04
              • 1970-01-01
              • 2010-12-18
              • 1970-01-01
              • 2021-12-27
              • 1970-01-01
              相关资源
              最近更新 更多