Извлечь диапазон из NSArray - PullRequest
       23

Извлечь диапазон из NSArray

19 голосов
/ 04 октября 2010

Мне нужно отобразить 6 представлений, и каждое представление должно отображать 20 элементов (UIButtons).У меня есть один большой NSArray, который содержит элементы для всех 6 представлений.

Например, представление 1 должно быть элементами 0-19, представление 2 должно быть элементами 20-39.

Как мне извлечь соответствующий диапазон из массива?Возможно, с использованием NSRange длиной 20, но местоположение начала нужно будет менять для каждого представления ... в идеале без оператора switch:)

Спасибо

Ответы [ 2 ]

62 голосов
/ 04 октября 2010
 static const NSUInteger ItemsPerView = 20;
 NSUInteger startIndex = viewIndex * ItemsPerView;
 NSUInteger count = MIN( completeArray.count - startIndex, ItemsPerView );
 NSArray *itemsForView = [completeArray subarrayWithRange: NSMakeRange( startIndex, count )];
4 голосов
/ 04 октября 2010

Ваш ответ на ваш вопрос.Просто проследите, какой NSRange принадлежит какому представлению, и используйте его для поиска необходимых объектов в вашем контейнере, используя NSArray -subarrayWithRange: метод.

...