从NSArray中提取范围

时间:2010-10-04 16:14:11

标签: objective-c for-loop ios4 nsarray range

我需要显示6个视图,每个视图应显示20个项目(UIButtons)。我有一个大的NSArray,其中包含所有6个视图的项目。

例如,视图1应为0-19项,视图2应为项目20-39。

如何从阵列中提取相关范围?也许使用长度为20的NSRange,但是每个视图都需要更改起始位置...理想情况下没有switch语句:)

由于

2 个答案:

答案 0 :(得分:62)

 static const NSUInteger ItemsPerView = 20;
 NSUInteger startIndex = viewIndex * ItemsPerView;
 NSUInteger count = MIN( completeArray.count - startIndex, ItemsPerView );
 NSArray *itemsForView = [completeArray subarrayWithRange: NSMakeRange( startIndex, count )];

答案 1 :(得分:4)

你的答案在你的问题中。只需跟踪哪个NSRange属于哪个视图,并使用它来使用NSArray的-subarrayWithRange:方法在容器中查找必要的对象。