2012-04-18 2 views
0

여러 사전을 포함하는 NSMUtableDictionary가 있습니다. 해당 데이터의 XML 구문 분석을 수행하고 있습니다. 이제 사전 데이터를 반환 할 때 마지막 사전 값을 제공합니다. 난 D의 값을 반환 할 때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; 

이 나에게 마지막 사전 값을 제공합니다 다음은 내 코드입니다. 이 문제를 해결하는 방법을 제안 해주세요. 감사합니다.

+0

[자식 이름] 출력을 붙여주세요. – Devang

+0

'd'는 어디에 선언 되었습니까? 그 코드를 사용할 수 있습니까? 또한 여기에 붙여 넣은 코드가 정확한 코드이고'd'가'for' 루프 안에 할당되고 초기화되지 않았기를 바랍니다. –

답변

0

설명에서 [하위 이름]이 고유하지 않을 수도 있습니다. 왜 NSLog (@ "자식 이름 = % @", [자식 이름]); 개체를 설정하고 이름이 고유한지 확인하기 전에? D의 내용을 나열 디버거에서

포 D :

또한, 당신은 어디 중단 점을 설정할 수 및 유형.

+0

고유 한 값을 제공 할 때마다 [하위 이름]의 NSLog를 확인합니다. – Developer

-2

NSNull 개체를 NSMutableDictionary에 삽입 할 수 없습니다. 첫 번째 NSNull 개체가 사전 (d)에 추가 될 때마다 사전의 끝을 나타냅니다. 모든 경우에 CXMLNode에 오는 자녀가 있는지 확인하십시오. 그렇지 않으면 문제의 근본 원인입니다.

데이터가 CXMLNode에 들어오는 것을 고려하면 인터넷에서 해당 데이터가 전송되는지 여부를 먼저 확인하십시오.

+2

올바르지 않습니다. 사전에 ** nil ** 객체를 넣을 수 없습니다. NSNull의 * 전체 점 *은 그것의 인스턴스가 누락 된 값을 나타 내기 위해 콜렉션에 넣는 유효한 객체라는 것입니다. –

+0

@ DShah : Ken Thomases가 완벽하다고 생각합니다. –

관련 문제