문제

각 키가 배열을 가리키는 nsdictionary가 있습니다. 나중에 모든 값을 하나의 배열로 병합하고 싶습니다. API를 사용하여 말하는 것보다 더 효율적인 일을하는 방법이 있습니까?

NSArray *anArray = [someDictionary allValues];
NSMutableArray *newArray = [NSMutableArray array];
start outter loop on anArray
   start inner loop on objects in anArray
     add objectAtIndex to newArray
도움이 되었습니까?

해결책

그냥 사용하십시오 [newArray addObjectsFromArray:anArray];

다른 팁

위의 Benn Gottlieb의 답변에는 약간의 혼란이 있습니다. 명확히하기 위해, 그는 사용을 제안하고 있습니다 AddObjectsfromArray 내부 루프 대신 Coocoo는 모든 루핑을 대체 할 수 있다고 생각하기 때문에 혼란스러워합니다. (이렇게한다면, 당신은 그의 반대에 따라 방해받지 않은 배열이 남아있을 것입니다.)

다음은 명시적인 반복이 필요하지 않은 합리적으로 우아한 솔루션입니다.

NSArray *anArray = [someDictionary allValues];
NSArray *flattenedArray = [anArray valueForKeyPath: @"@unionOfArrays.self"];

BTW이 코드는 평평한 배열에 복제를 남깁니다. 중복을 제거하려면 사용하십시오 고유 한 분야 대신에 설립.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top