2014-10-07 2 views
0

새로운 것을 배우고 시도해보십시오. 이 문을 쓰거나 사전 내부의 배열을 수정하는 더 좋은 방법이 있는지 궁금합니다. 포맷, 메모리 및 효율 제안 상대 :NSMutableDictionary에서 NSMutableArray를 효과적으로 수정하는 방법

@property (strong, nonatomic) NSMutableDictionary *sortedTimeZonesDictionary; 

및 alloc'ed과 각 키의 내부 배열을 init'ed있다 : 내 사전과 같은 정의입니다

NSMutableArray *arrayCopy = [self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey]; 
[arrayCopy addObject:currentTimeZone]; 
[self.sortedTimeZonesDictionary setObject:arrayCopy forKey:currentTimeZone.sectionKey]; 

. 당신 만이 할 수

답변

2

:

[[self.sortedTimeZonesDictionary objectForKey:currentTimeZone.sectionKey] addObject:currentTimeZone]; 

당신이 포인터를 사용하는 것을 기억하십시오, 그래서 당신은 단지 ArrayA에 개체를 추가 할 필요가, 당신의 NSMutableDictionary는 ArrayA에 대한 포인터를 가지고 있다고 할 수 있습니다.

예제에서 수행중인 작업은 arrayCopy이 NSMutableDictionary 개체와 동일한 메모리 주소를 가리킨 다음 해당 메모리 주소의 배열에 새 개체를 추가하는 것입니다. 마지막 명령어는 arrayCopyself.sortedTimeZonesDictionary[currentTimeZone.sectionKey]이 같은 주소를 가리 키기 때문에 아무런 효과가 없습니다.

+1

하. 나를 때려! –

관련 문제