Подтвердить что ты не робот

Как получить первые x элементов NSArray в Cocoa?

Новое в Cocoa и, кажется, что-то не хватает.

Каков самый элегантный/идиоматический способ получить первые x элементов NSArray как еще один NSArray? Очевидно, я могу перебирать их и хранить их вручную, но похоже, что для этого требуется более стандартный метод.

Я ожидал, что будет -arrayWithObjectsInRange: или что-то подобное, но ничего не вижу...

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

NSArray* smallArray = // fill in the blank     

// smallArray contains first 10 items from largeArray

Спасибо!

4b9b3361

Ответ 1

Вы можете использовать subarrayWithRange:.

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

Ответ 2

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

Ответ 3

Второй параметр - это количество элементов массива, которое должно включать в диапазон, а не индекс "to"

Ответ 4

В Swift 3 вы можете использовать это:

let smallArray = largeArray.prefix(10)