排序按字母顺序
对于一个简单的小号或者像这样,我喜欢使用排序描述符。
假设你有对象的可变数组,其类有一个name
的NSString属性:
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];
当然,您可以使用sortUsingSelector:
此:
[myArray sortUsingSelector:@selector(compare:)];
如果阵列具有自定义对象,那么你就需要实现对这些对象的排序方法:
@implementation myCustomObject
...
-(NSComparisonResult) compare:(myCustomObject*) other {
return [self.name compare:other.name];
}
@end
不错的一行答案(对于简单的数组)。 – newenglander 2012-06-02 10:48:54
TechZen的做法效果很好,但如果你使用NSSortDescriptor的+ sortDescriptorWithKey它会更好地工作:上行:选择:,传递“localizedCompare:”作为选择器。这样,排序就会根据用户的语言进行本地化,这可以对字符串比较产生很大的影响。
myArray=[myDict keysSortedByValueUsingSelector:@selector(compare:)];
只为我工作!
嗯..以前的答案有什么区别? – kleopatra 2013-09-14 16:22:01
thansk。它起作用 – mrugen 2010-09-16 19:02:55
这将以“W”开始,而不是“A”开始。如何从“A”开始? – 2013-08-16 20:20:42
我得到升序首先CAPS和小写字母。像“A到Z”,然后是“A到Z”。我需要做什么。 – user3589771 2015-08-11 06:24:10