2010-07-29 5 views
43

코코아를 처음 접 하시면서 뭔가 누락 된 것 같습니다.코코아에서 NSArray의 첫 번째 x 요소를 얻으려면 어떻게해야합니까?

NSArray의 첫 번째 x 요소를 또 다른 NSArray으로 가져 오는 가장 우아하고 관용적 인 방법은 무엇입니까? 분명히 나는 ​​그들을 반복하여 수동으로 저장할 수 있지만, 이것을 수행하는보다 표준적인 방법이있는 것처럼 보입니다.

가 나는 -arrayWithObjectsInRange: 또는 비슷한,하지만 아무것도 표시되지 않습니다 ...

NSArray* largeArray...// Contains 50 items... 

NSArray* smallArray = // fill in the blank  

// smallArray contains first 10 items from largeArray 

감사있을 기다리고 있었다!

+0

누가 같은 일을하려고하지만, 알 수없는 크기의 배열로 시작해서, 나는 아주 비슷한 질문을 던져왔다. http://stackoverflow.com/questions/17928973/how-do-i-get-the-first- x-elements-of-unknown-size-nsarray –

답변

120

subarrayWithRange:을 사용할 수 있습니다.

NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, 10)]; 
+0

NSMakeRange가 아니어야합니다 (0,9)? –

+12

@SeptiadiAgus :'NSRange'의 형식은'{시작 인덱스, 길이}'입니다. 따라서 처음 10 개 요소를 원하면 두 번째 인수는 '10'입니다. – mipadi

+8

largeArray에 x 항목이없는 경우 프로그램이 중단됩니다. –

0

두번째 매개 변수는 배열의 항목 수는없는 인덱스 '에'의 범위에 포함하는 것입니다

18
firstNItems = [items subarrayWithRange:NSMakeRange(0, MIN(n, items.count))]; 
-1

이 사용할 수있는 스위프트 3 년 : 누군가를 위해

let smallArray = largeArray.prefix(10) 
+0

질문에 객관적인 질문이옵니다. – ObjectNameDisplay

관련 문제