2014-08-20 1 views
0

기본 사전 (mainDictionary)을 만든 다음 tempDictionary라는 다른 사전 (tempDictionary라고 함)을 작성하고 tempDictionary를 나는 값을 얻는다. 그런 다음 tempDictionary를 값으로 기본 사전에 추가하십시오. 이 작동하지만 tempDictionary를 다시 채워서 다시 채울 수있게 한 다음 기본 사전에 다른 값으로 추가해야합니다. 것은 tempDictionary를 지우면 주요 사전에서 해당 값을 지 웁니다. 여기 내 코드가 :동적으로 NSMutableDictionary를 다른 NSMutableDictionary와 함께 채울 필요가 있습니다.

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc]init]; 
[tempDictionary setObject:@"apple" forKey:@"myFruit"]; 

[mainDictionary setObject:tempDictionary forKey:@"sample4"]; 
[tempDictionary removeAllObjects]; 

그래서 분명히 다른 방법을 사용하거나 어떻게 든 tempDictionary를 지우기 전에 mainDictionary를 "저장"해야합니다. tempDictionary를 동적으로 업데이트 한 다음 mainDictionary를 채울 필요가 있습니다.이 작업을 수행하는 방법이 있습니까? 추가 할 필요가있는 수백 개의 샘플이 있으므로 런타임에 tempDictionary를 여러 개 만들 수는 없습니다.

+0

패턴이 보입니까? 단 하나의 "tempDictionary"개체가 있으며 내용을 지울 수 없으며 값이 계속있을 것으로 기대할 수 없습니다. 모든주기마다 * new * "tempDictionary"를 만드는 것을 고려하십시오. –

+0

나는 tempdictionary가 채워지는 방식 때문에 그렇게 할 수 없다. 별도의 기능이 작동하면 끊임없이 채워집니다. 그것은 글로벌해야합니다. – lettsss

+0

그건 말이 안됩니다. 그것을 비울 수 있다면 그것을 대체 할 수 있습니다. –

답변

0

임시 사전에서 모든 개체를 제거 할 때 주 사전에 추가 된 내용을 그대로 유지하려면 기본 사전에 추가하기 전에 복사해야합니다. 당신이 새 컬렉션을 시작할 때마다 같은 이름으로 새 임시 사전을 만들

tempDictionary = [NSMutableDictionary dictionary]; 

을 할 뿐이다

NSMutableDictionary *tempDictionary = [[NSMutableDictionary alloc] init]; 
[tempDictionary setObject:@"apple" forKey:@"myFruit"]; 

[mainDictionary setObject:[tempDictionary copy] forKey:@"sample4"]; 
[tempDictionary removeAllObjects]; 

대안이 tempDictionary를 재사용하는 것입니다 -이

[tempDictionary removeAllObjects]; 
매우 다르다
+0

완벽! 감사. 나는 3 분 안에 대답을 받아 들일 것이다. – lettsss

+0

그건 바보 같은 짓이야 - 불필요하게 한 사전에서 다른 것으로 내용을 복사하는 것. 그냥 새로운 "tempDictionary"를 만드십시오. –

+0

메인 포스트에서 말했듯이, 새로운 tempdictionary를 만드는 것은 효과가 없습니다. Adam은이 질문을 완벽하게 이해했습니다. – lettsss

관련 문제