14

我有一组 int64_t 值,我需要从中设置索引。我以前用过:

NSIndexSet *set = [NSIndexSet indexSetWithRange:NSMakeRange(location, length)];

制作索引集,但这一次我不清楚根据我所拥有的信息我将如何做到这一点。

细节:我有一组价值观。我知道集合中的最大值、集合中的最小值以及集合中的值的数量。但是,这些值不一定是连续的。

例如,如果我有以下值:1,3,4,6,7,9 我想创建一个集合,其中包括集合中介于 1 和 9 之间的所有数字,即 set = 1-9。

我该怎么做?

编辑

我不应该说我有一个整数的“集合”,而是 - 我将对象存储在核心数据中,每个对象都有一个与之关联的 int64_t 属性,所以我没有指向对象实际集合的指针,我想避免仅仅为了创建一个集合而获取对象。

4

3 回答 3

22

编辑:正如讨论中证明的那样,问题是如何创建一个具有给定最小值和最大值的范围。这是用

NSMakeRange(min, max + 1 - min)
于 2013-10-17T15:13:47.173 回答
0

只需使用 aNSMutableIndexSet并使用方法将它们一一添加addIndex

于 2013-10-17T15:13:56.667 回答
0

你可以这样做:

NSArray *array = @[@1,@3,@4,@6,@7,@9];

NSMutableIndexSet *set = [[NSMutableIndexSet alloc] init];
for (NSNumber *value in array) {
    [set addIndex:[value integerValue]];
}
于 2013-10-17T15:29:32.007 回答