【发布时间】:2018-11-13 20:45:14
【问题描述】:
我有一个由
创建的 NSIndexSetNSIndexSet* groups = [self.specifiers indexesOfObjectsPassingTest:^(PSSpecifier*specifier, NSUInteger idx, BOOL *stop) {
return [(NSString*)[specifier.properties objectForKey:@"cell"] isEqualToString:@"KBGroupCell"]; }];
可能看起来像这样:
(0 3 5 8-9 12 14 17-19) 和给定的最大值为 25。
我希望过滤和创建范围,这样我就可以实现如下输出:
0-2
3-4
5-7
8-11
12-13
14-16
17-25
使用的数组是由用户而不是我自己填充的。 KBGroupCells 用于填充表中的页眉和页脚,因此不应连续识别。当我稍后填充我的表格时,我需要记住被忽略的数字(9、18 和 19)。
通过使用rangeAtIndex,我可以识别集合中包含多个的范围,因此可以用于查找要忽略的数字。
我怎样才能做到这一点?
【问题讨论】:
-
1.
5-7呢? 2. 请出示您的代码以填充此NSIndexSet。 -
假设索引集包含
0 3 8-9 10 15。结果应该是0-2, 3-7, 8-14, 15-25还是0-2, 3-7, 8-9, 10-14, 15-25? -
@rmaddy -
NSIndexSet不是一组索引和范围符号只是描述它的一种方式吗?所以0 3 8-9 10 15实际上是0 3 8-10 15,因此您的问题没有实际意义?我认为 OP 希望创建从集合中存在的一系列索引的第一个索引开始的范围,这样的运行可能具有长度 1,并以不在集合中的下一个索引结束,该索引立即位于(或立即在集合结束之前)。 -
@rmaddy 你说的很对。不确定 5-7 发生了什么已将其重新编辑。对此感到抱歉!
-
@rmaddy 在该示例中,它将是 0-2、3-7、8-9、10-14、15-25。注意 9 将被忽略
标签: ios objective-c