从NSMutableArray中删除重复项,并在'for'循环中添加对象

时间:2013-01-28 19:10:49

标签: ios objective-c nsmutablearray

现在,我已经在这里查看了谷歌,似乎每个人都使用NSSet删除欺骗。这很酷,但似乎这个方法也删除了排序。

有吗? 1)按字母顺序排序NSSet的方法? 2)在NSMutableArray循环中或之外的for中删除欺骗的更好方法,我将它们添加到数组中,方法是从.csv文件中读取它们。

谢谢:)

3 个答案:

答案 0 :(得分:3)

答案 1 :(得分:1)

您可以从数组中构造NSOrderedSet *;使用+orderedSetWithArray:将保留数组的现有顺序。如果它的顺序不正确,则无法直接对集合进行排序,因此使用有序集合没什么意义,但您可以使用{{轻松构造常规NSSet并将其排序到另一个数组中1}},甚至更好-sortedArrayUsingDescriptor:,然后是allObjects的任何排序方法。

另一方面(我可能会对此有一些讨厌的评论,但是......),因为NSArrayNSArray似乎be built on top of相同{{3}你可以这样做:

NSSet

这基本上是有序集在构建它时必须要做的事情,并且很可能你的数组足够小(如果你把它放入id newObj = // Acquire new object from wherever while( newObj ){ if( ![arrayImConstructing containsObject:newObj] ){ [arrayImConstructing addObject:newObj] } newObj = // Acquire next object } )你不会注意到性能差异。仍然,测量两个,然后决定。


* UIPicker适用于iOS> 5.0(或OS X> 10.7)。

答案 2 :(得分:0)

NSOrderedSet为您提供了一组订购。