2016-10-12 2 views
0

NSArray를 NSArray와 함께 사용했습니다. 모든 NSArray를 하나로 가져오고 싶습니다.iOS 모든 NSArray를 하나로 가져 오기

사용하는 간단한 기능이 있다고 생각합니까? 아닙니다. 내가 좋아하는 것

(
     (
     n0eGi1KJWq, 
     KHGeW32548, 
    ), 
     (
     n0eGi1KJWq 
    ) 
) 

는 얻을 : 여기

내가받을 것입니다

(
     n0eGi1KJWq, 
     KHGeW32548, 
     n0eGi1KJWq 
) 
+0

당신이 찾고있는 기능을 'flatMap'입니다. – keithbhunter

+0

@keithbhunter 고맙습니다.하지만 Objective-C를 사용하고 있습니다. – Viny76

답변

3

단순히 루프는 새로운 배열을 만드는 데 사용할 수 있습니다 A :에서

NSArray *mainArray = ... // the array containing the other arrays 
NSMutableArray *finalArray = [NSMutableArray array]; 
for (NSArray *innerArray in mainArray) { 
    [finalArray addObjectsFromArray:innerArray]; 
} 

을 이 점 finalArray에는 다른 모든 배열의 모든 객체가 있습니다.

+0

감사합니다. – Viny76

1

또한이 목적을 위해 @unionOfArrays을 사용할 수 있습니다 : 당신은 (세 가지 차원 배열에 대한) 깊은 플래트 닝을해야하는 경우

NSArray *flatArray = [array valueForKeyPath: @"@unionOfArrays.self"]; 

이 두 번 사용

NSArray *flatArray = [array valueForKeyPath: @"@[email protected]"]; 
+0

좋지만 실제로는 동적은 아닙니다 :/ – Viny76

+0

"동적"이란 무엇입니까? 루트 배열에있는 배열의 양이 아니라 깊이입니다. 두 번째 예제는 배열의 배열을위한 것입니다;) – alexburtnik

+0

ohhhh ok! – Viny76

관련 문제