Objective-c에서 NSARRARES 병합
-
16-09-2019 - |
문제
각 키가 배열을 가리키는 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이 코드는 평평한 배열에 복제를 남깁니다. 중복을 제거하려면 사용하십시오 고유 한 분야 대신에 설립.
제휴하지 않습니다 StackOverflow