NSDictionary找到keyPath

时间:2017-11-03 08:22:05

标签: ios objective-c xcode nsdictionary

我有一个随机字典,我想迭代那个字典里面的所有对象。有没有办法找到字典内的对象的keyPath?

假设我们有这本词典。

{
  "glossary": {
    "title": "example glossary",
    "GlossDiv": {
      "title": "S",
      "GlossList": {
        "GlossEntry": {
          "ID": "SGML",
          "SortAs": "SGML",
          "GlossTerm": "Standard Generalized Markup Language",
          "Acronym": "SGML",
          "Abbrev": "ISO 8879:1986",
          "GlossDef": {
            "para": "A meta-markup language, used to create markup languages such as DocBook.",
            "GlossSeeAlso": [
              "GML",
              "XML"
            ]
          },
          "GlossSee": "markup"
        }
      }
    }
  }
}

现在我想找到GlossEntry的keyPath或任何其他对象。

1 个答案:

答案 0 :(得分:1)

考虑:

  1. 您可以获取字典中的所有键并迭代它们。例如。 for (NSString *key in dictionary) {...}

  2. 给定一个键,您可以获得匹配值并测试它本身是否为字典。

  3. 递归是你的朋友。您可以编写一个函数,该函数采用当前的键路径前缀,字典和可变数组来添加找到的键路径。执行此操作将涉及(1),(2)和递归调用。

  4. 现在给自己写一些代码。如果你遇到困难,请提出一个新问题,包括你的代码,并解释你被困的地方。

    HTH