【问题标题】:How to append values of NSMutableDictionary如何附加 NSMutableDictionary 的值
【发布时间】:2012-04-18 15:24:30
【问题描述】:

我有包含多个字典的 NSMUtableDictionary。我正在对这些数据进行 XML 解析。 现在什么时候返回字典数据,它给了我最后一个字典值。 这是我的代码:

    for(CXMLNode* child in [element children]) {
        id v = [Soap deserialize:child];
        if(v == nil) { 
            v = [NSNull null]; 
        }

        [d setObject:v forKey:[child name]];
    }
    NSLog(@"dData=%@",d);
    return d;

当我返回 d 的值时,它给了我最后一个字典值。 请建议我解决这个问题的方法。 谢谢

【问题讨论】:

  • 请粘贴 [child name] 输出。
  • d 在哪里声明?您也可以显示使用该代码吗?另外我希望你在这里粘贴的代码是准确的代码,d 没有在for 循环内分配和初始化。

标签: iphone objective-c xcode ios5 nsmutabledictionary


【解决方案1】:

根据您的描述,[child name] 可能不是唯一的。为什么不 NSLog(@"child name = %@", [child name]);在设置对象并确保名称是唯一的之前?

另外,你可以在任何地方设置断点和类型:

豆丁

在调试器中列出d的内容。

【讨论】:

  • 我一直检查 [child name] 的 NSLog,它给出了唯一的值。
【解决方案2】:

您不能将NSNull 对象作为字典插入NSMutableDictionary。每当您的 First NSNull 对象附加到字典 (d) 中时,这将指示您的字典结束。检查CXMLNode进来的孩子是否在所有情况下都存在。否则这是您问题的根本原因。

考虑到进入CXMLNode 的数据来自互联网,那么首先检查该服务是否正在发送正确的数据。

【讨论】:

  • 这是不正确的。您不能将 nil 对象放入字典中。 NSNull整点是它的实例是有效的对象,可以放入集合中以表示缺失值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多