Ответ 1
Вы можете использовать subarrayWithRange:
.
NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, 10)];
Новое в Cocoa и, кажется, что-то не хватает.
Каков самый элегантный/идиоматический способ получить первые x элементов NSArray
как еще один NSArray
? Очевидно, я могу перебирать их и хранить их вручную, но похоже, что для этого требуется более стандартный метод.
Я ожидал, что будет -arrayWithObjectsInRange:
или что-то подобное, но ничего не вижу...
NSArray* largeArray...// Contains 50 items...
NSArray* smallArray = // fill in the blank
// smallArray contains first 10 items from largeArray
Спасибо!
Вы можете использовать subarrayWithRange:
.
NSArray *smallArray = [largeArray subarrayWithRange:NSMakeRange(0, 10)];
firstNItems = [items subarrayWithRange:NSMakeRange(0, MIN(n, items.count))];
Второй параметр - это количество элементов массива, которое должно включать в диапазон, а не индекс "to"
В Swift 3 вы можете использовать это:
let smallArray = largeArray.prefix(10)