2012-04-18 81 views
0

我有NSMUtableDictionary包括多個字典。我正在做XML數據解析。 現在,當返回字典數據時,它給了我最後的字典值。 這裏是我的代碼:如何添加NSMutableDictionary的值

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的值,它給了我最後的字典值。 請建議我解決這個問題的方法。 謝謝

+0

請粘貼[孩子名]輸出。 – Devang 2012-04-19 13:12:36

+0

「d」在哪裏申報?你能展示使用該代碼嗎?另外,我希望你在這裏粘貼的代碼是精確的代碼,並且''''不會在'for'循環中分配和初始化'd'。 – 2012-04-19 13:14:27

回答

0

從您的描述來看,可能[兒童名稱]不是唯一的。爲什麼不使用NSLog(@「child name =%@」,[child name]);在設置對象並確保名稱是唯一的之前?在調試

PO d

列出d的內容:

此外,你可以在任何地方設置斷點和類型。

+0

我一直檢查[子名]的NSLog,它提供了唯一的值。 – Developer 2012-04-19 10:39:22

-2

不能將NSNull對象作爲字典插入到NSMutableDictionary中。當您的第一個NSNull對象被附加到字典(d)中時,這將表明字典的結尾。檢查所有情況下是否存在CXMLNode的孩子。否則這是你的問題的根源。

考慮到進入CXMLNode的數據來自互聯網,首先檢查該服務是否發送正確的數據。

+2

這是不正確的。你不能在字典中添加**零**對象。 NSNull的*整點*是它的實例是放置集合以表示缺失值的有效對象。 – 2012-04-19 03:41:51

+0

@DShah:我認爲肯·托馬斯是完全正確的。 – 2012-04-19 13:11:39