我有一个对象数组,需要按评级和后裔投票数对其进行排序(这样如果两个 5 星评级元素比较,得票最多的应该是第一个)

是否可以通过两个描述符对 NSArray 进行排序:首先在评级之后,然后在投票计数之后?

我在 http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSSortDescriptor_Class/Reference/Reference.html 上找到了

sortUsingDescriptors: 这样的东西,但我在文档中的任何地方都找不到它,认为它已被弃用。

最佳答案

是的你可以:

NSSortDescriptor *sortRating = [[NSSortDescriptor alloc] initWithKey:@"rating" ascending:NO];
NSSortDescriptor *sortVotes = [[NSSortDescriptor alloc] initWithKey:@"votes" ascending:NO];

NSArray *sortedArray = [orignalAray sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sortRating, sortVotes, nil]];
[sortRating release], sortRating = nil;
[sortVotes release], sortVotes = nil;

关于ios - 设置多个排序描述符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7482909/

10-13 04:02