Я сделал собственный класс. Это ч файлКак изменить этот код, чтобы сортировать NSMutableArray?
@interface Player : NSObject {
NSString *name;
NSNumber *points;
}
@property (nonatomic, retain) NSString *name;
@property (nonatomic, retain) NSNumber *points;
-(id) initWithName:(NSString *)n andPoints:(int)p;
@end
Это м файлу
#import "Player.h"
@implementation Player
@synthesize name, points;
-(id) initWithName:(NSString *)n andPoints:(int)p
{
self.name = n;
self.points = [NSNumber numberWithInt:p];
return self;
}
@end
Затем я создаю несколько игроков, и отнести их к одной из двух команд, как это:
Player *p1 = [[Player alloc] initWithName:@"Joe" andPoints:5];
Player *p2 = [[Player alloc] initWithName:@"James" andPoints:5];
Player *p3 = [[Player alloc] initWithName:@"Jim" andPoints:5];
NSMutableArray *team1 = [[NSMutableArray alloc] initWithObjects:p1,p2,p3,nil];
Player *p4 = [[Player alloc] initWithName:@"Aaron" andPoints:7];
Player *p5 = [[Player alloc] initWithName:@"Anthony" andPoints:7];
Player *p6 = [[Player alloc] initWithName:@"Alex" andPoints:7];
NSMutableArray *team2 = [[NSMutableArray alloc] initWithObjects:p4,p5,p6,nil];
Тогда я поместите эти две команды в другой NSMutableArray следующим образом:
NSMutableArray *allTeams = [[NSMutableArray alloc] initWithObjects:team1, team2, nil];
Для отображения всех игроков и их точек, я использую этот цикл:
for (NSMutableArray *teamArray in allTeams) {
for (Player *player in teamArray) {
NSLog(@"%@: %@", [player name], [player points]);
}
}
Как это, он просто будет показывать игроков в порядке их добавления выше.
Я хочу сортировать этот массив команд по очкам команды, что является суммой очков каждого отдельного игрока в команде. Затем, когда цикл запускается для отображения всех игроков, игроки в команде2 будут отображаться перед командой1.
Что такое код для сортировки массива allTeams по командам? Нужно ли использовать категории?
Получил его назад, оператор массива на первом месте, поэтому @ sum.points :) также обратите внимание, что метод удобства класса доступен только на iOS 4.0+, поэтому он будет аварийно завершен IPADS. –
Удивительный, спасибо! Является ли сортировка по количеству игроков так же просто? –
@awakeFromNib да, используйте '@ count' вместо' @ sum' –