现在,我已经在这里查看了谷歌,似乎每个人都使用NSSet
删除欺骗。这很酷,但似乎这个方法也删除了排序。
有吗?
1)按字母顺序排序NSSet的方法?
2)在NSMutableArray
循环中或之外的for
中删除欺骗的更好方法,我将它们添加到数组中,方法是从.csv
文件中读取它们。
谢谢:)
答案 0 :(得分:3)
我相信你想要使用NSOrderedSet
。这是关于它的文档:
答案 1 :(得分:1)
您可以从数组中构造NSOrderedSet
*;使用+orderedSetWithArray:
将保留数组的现有顺序。如果它的顺序不正确,则无法直接对集合进行排序,因此使用有序集合没什么意义,但您可以使用{{轻松构造常规NSSet
并将其排序到另一个数组中1}},甚至更好-sortedArrayUsingDescriptor:
,然后是allObjects
的任何排序方法。
另一方面(我可能会对此有一些讨厌的评论,但是......),因为NSArray
和NSArray
似乎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为您提供了一组订购。