mem*_*n32 49 arrays iphone objective-c
我正在尝试制作一个高分表,并且在目标c中吮吸数组(实际上,一般来说,目标c对我来说很有挑战性),所以我无法弄清楚如何排序.我正在尝试做这样的事情(speudocode,我用动作风格写这个,因为我对它更熟悉):
highscores.addObjecttoArray(score)
highscores.sort(ascending)
Run Code Online (Sandbox Code Playgroud)
但我无法弄明白......我已经看到了其他关于它的线索,但他们使用plist文件和东西,我不知道足够的客观c来向他们学习.
ohh*_*rob 137
你想这么做吗?
如果你有一个可变的NSNumber实例数组:
NSSortDescriptor *highestToLowest = [NSSortDescriptor sortDescriptorWithKey:@"self" ascending:NO];
[mutableArrayOfNumbers sortUsingDescriptors:[NSArray arrayWithObject:highestToLowest]];
Run Code Online (Sandbox Code Playgroud)
好,易于 :)
您还可以使用不可变数组上的描述符执行类似的排序,但最终会得到一个副本,而不是就地排序.
Wev*_*vah 27
[highscores sortUsingSelector:@selector(compare:)];
应该工作,如果他们肯定都是NSNumber.
(添加对象是:
[highscores addObject:score];
)
如果要按降序排序(最高优先级):
10.6/iOS 4:
[highscores sortUsingComparator:^(id obj1, id obj2) {
if (obj1 > obj2)
return NSOrderedAscending;
else if (obj1 < obj2)
return NSOrderedDescending;
return NSOrderedSame;
}];
Run Code Online (Sandbox Code Playgroud)
否则,您可以定义类别方法,例如:
@interface NSNumber (CustomSorting)
- (NSComparisonResult)reverseCompare:(NSNumber *)otherNumber;
@end
@implementation NSMutableArray (CustomSorting)
- (NSComparisonResult)reverseCompare:(NSNumber *)otherNumber {
return [otherNumber compare:self];
}
@end
Run Code Online (Sandbox Code Playgroud)
并称之为:
[highscores sortUsingSelector:@selector(reverseCompare:)];
| 归档时间: |
|
| 查看次数: |
32184 次 |
| 最近记录: |