Objective c 如何从NSIndexSet中删除重复项?

Objective c 如何从NSIndexSet中删除重复项?,objective-c,nsindexset,Objective C,Nsindexset,从NSIndexSet中删除重复索引的最佳方法是什么?例如,假设我的NSIndexSet如下所示: [ 1, 3, 3, 6, 7, 12, 12, 12 ] 我希望它看起来像: [ 1, 3, 6, 7, 12 ] 实现这一点最有效的方法是什么?NSIndexSet不可能包含重复项。你凭什么认为你有 更具体地说,文档说明 NSIndexSet类表示唯一无符号整数的不可变集合,因其使用方式而称为索引。此集合称为索引集 这里的关键点是单词“unique”,这意味着它不能包含重复项。尝试将索引添

从NSIndexSet中删除重复索引的最佳方法是什么?例如,假设我的NSIndexSet如下所示:

[ 1, 3, 3, 6, 7, 12, 12, 12 ]
我希望它看起来像:

[ 1, 3, 6, 7, 12 ]

实现这一点最有效的方法是什么?

NSIndexSet
不可能包含重复项。你凭什么认为你有

更具体地说,文档说明

NSIndexSet类表示唯一无符号整数的不可变集合,因其使用方式而称为索引。此集合称为索引集


这里的关键点是单词“unique”,这意味着它不能包含重复项。尝试将索引添加到已经存在的索引集中不会导致任何更改。

NSIndexSet是一个不可变的类。此外,从文件中:

NSIndexSet类表示唯一无符号整数的不可变集合,因其使用方式而称为索引。此集合称为索引集


长话短说,您没有任何重复的索引。

NSIndexSet
s不能包含重复的索引。它们是布景。从文档中:«NSIndexSet类表示唯一无符号整数的不可变集合,»请提供有关您的问题的更多详细信息,因为它似乎与您认为的不同。不可变性与此无关。你总是可以创建一个可变副本。当然,但是现在它就不是NSIndexSet了,是吗?考虑到我的陈述是准确的,我真的不理解你的态度。如果您有一个NSIndexSex实例,您将无法修改其当前形式的内容。您需要基于修改创建一个新实例,或者基于该实例创建一个可变实例。你知道这是准确的,所以别逞强了。你最初的陈述“不变性是不相关的”是不准确的。对于OP来说,这是一个重要的声明,他也对set的工作原理感到困惑。我想他指的是你对Liskov替换原理的错误应用。请子孙后代注意(因为我不明白为什么两个几乎相同的答案在分数上相差7):J2theC的答案包含了比Kevin的答案更早的doc引用。Kevin在5分钟的宽限期内添加了报价,因此没有修改历史记录。他的回答最初只包括当前的第一句话。