NSDictionary 查找 keyPath

Posted

技术标签:

【中文标题】NSDictionary 查找 keyPath【英文标题】:NSDictionary find 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。对吗? 是的,字典中对象的键路径 请在您的问题中包含一些示例代码。 好的,我会编辑我的问题。 这可能会有所帮助。 ***.com/questions/16492158/… 【参考方案1】:

考虑:

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

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

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

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

HTH

【讨论】:

以上是关于NSDictionary 查找 keyPath的主要内容,如果未能解决你的问题,请参考以下文章

字典:NSDictionary的应用举例

NSDictionary 和核心数据

NSDictionary实现原理

NSDictionary底层实现原理

在 NSDictionary 和 plists 中苦苦挣扎

无法将“__NSSingleObjectArrayI”类型的值转换为“NSDictionary”