【问题标题】:NSDictionary find keyPathNSDictionary 查找 keyPath
【发布时间】:2017-11-03 08:22:04
【问题描述】:

我有一个随机字典,我想遍历该字典中的所有对象。有没有办法找到字典中对象的 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 或任何其他对象。

【问题讨论】:

  • 你想得到你拥有的对象的keyPath。对吗?
  • 是的,字典中对象的键路径
  • 请在您的问题中包含一些示例代码。
  • 好的,我会编辑我的问题。
  • 这可能会有所帮助。 stackoverflow.com/questions/16492158/…

标签: ios objective-c xcode nsdictionary


【解决方案1】:

考虑:

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

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

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

现在给自己写一些代码。如果您遇到问题,请提出一个新问题,包括您的代码,并说明您遇到的问题。

HTH

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    相关资源
    最近更新 更多