Objective c 使用给定的最小值和最大值创建NSRange

Objective c 使用给定的最小值和最大值创建NSRange,objective-c,nsrange,nsindexset,Objective C,Nsrange,Nsindexset,我有一个int64_t值的集合,需要对其进行索引设置。我以前使用过: NSIndexSet *set = [NSIndexSet indexSetWithRange:NSMakeRange(location, length)]; 制作索引集,但这一次我不清楚如何根据我掌握的信息来做 细节:我有一个价值观的集合。我知道集合中的最高值、集合中的最低值以及集合中的值数。但是,这些值不一定是连续的 例如,如果我有以下值:1,3,4,6,7,9,我想创建一个集合,其中包含集合中1和9之间的所有数字,即集

我有一个int64_t值的集合,需要对其进行索引设置。我以前使用过:

NSIndexSet *set = [NSIndexSet indexSetWithRange:NSMakeRange(location, length)];
制作索引集,但这一次我不清楚如何根据我掌握的信息来做

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

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

我该怎么做

编辑


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

编辑:正如讨论中所述,问题是如何创建范围 具有给定的最小值和最大值。这件事就这样结束了

NSMakeRange(min, max + 1 - min)

只需使用
NSMutableIndexSet
并使用
addIndex

方法逐个添加它们,您可以执行以下操作:

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

NSMutableIndexSet *set = [[NSMutableIndexSet alloc] init];
for (NSNumber *value in array) {
    [set addIndex:[value integerValue]];
}

那么索引集应该包含索引1,3,4,6,7,9?还是我误解了你的问题?是的,所以我想知道如何创建范围1-9来实现这一点。对不起,我想我的问题不清楚。我刚刚做了一个编辑。谢谢-我想我的问题比这个更基本-我已经有了最大值和最小值,我只是不知道如何创建一个具有最小值和最大值的范围。@user1697845:
NSMakeRange(min,max+1-min)
?哇。我不敢相信事情竟那么简单。是的,这就是我所需要的,谢谢。