сортировка NSString из плиста 1-10 - PullRequest
1 голос
/ 10 марта 2011

У меня проблема с списком, который я хочу отсортировать.Это рекорд, который я хочу отсортировать по рейтингу игроков.Проблема в том, что ранжирование - это строка, которая испортила бы сортировку (я получаю 1,10,2,3,4,5,6,7,8,9).

Мне как-то нужно отсортироватьэто правильный путь.Для сортировки я использую:

NSArray *unSortedNames = [NSArray arrayWithContentsOfURL: plistURL];
NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"rating" ascending:YES] autorelease];
names = [[unSortedNames sortedArrayUsingDescriptors:[NSArray arrayWithObject:descriptor]] retain];

Журнал для первых трех игроков выглядит так:

  {
    isUser = NO;
    nick = Player;
    rating = 1;
    score = 57314;
},
    {
    isUser = NO;
    nick = Player321;
    rating = 10;
    score = 212;
},
    {
    isUser = NO;
    nick = "Player123";
    rating = 2;
    score = 24540;
},

Есть идеи, как решить эту проблему?

Спасибо, Микаэль

1 Ответ

2 голосов
/ 10 марта 2011

Пара параметров ...

  1. Добавьте свойство только для чтения в ваш класс, которое возвращает целочисленную версию вашего рейтинга iVar.Затем выполните сортировку на основе этого свойства.

  2. Используйте sortedArrayUsingFunction: и напишите функцию, которая сравнивает 2 ранжирования на основе их целочисленных значений и возвращает порядок сортировки.

1 кажется, что это должно быть намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...