我有一个nsmutable数组,而且那个近50 -60的对象有不同的名字,我可以按字母顺序对这个数组进行排序(是否有可能,怎么样?)
答案 0 :(得分:14)
对于这样的简单排序,我喜欢使用排序描述符。
假设您有一个可变对象数组,其类具有name
NSString属性:
NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];
答案 1 :(得分:8)
当然,您可以使用sortUsingSelector:
:
[myArray sortUsingSelector:@selector(compare:)];
如果你的数组有自定义对象,那么你需要对这些对象实现一个排序方法:
@implementation myCustomObject
...
-(NSComparisonResult) compare:(myCustomObject*) other {
return [self.name compare:other.name];
}
@end
答案 2 :(得分:2)
TechZen的方法效果很好,但是如果您使用NSSortDescriptor的+ sortDescriptorWithKey:ascending:selector :,将“localizedCompare:”作为选择器传递,它会更好。这样,排序就本地化为用户的语言,这可以在字符串比较中产生很大的不同。
答案 3 :(得分:0)
myArray=[myDict keysSortedByValueUsingSelector:@selector(compare:)];
简单地为我工作!