Сортировка Заголовков

У меня есть NSTable заполнены данными. Я отсортировал столбцы, используя следующий код. Проблема в том, что он сортирует столбец "Номер" по алфавиту, когда я хочу его численно.

(1,100,101,2,20,21,3,30,31................)

У меня есть данные, введенные в виде чисел (@1, @2, @3) а не струны (@"1", @"2", @"3")

// THIS WILL SORT ALL COLUMNS //

- (void)tableView:(NSTableView *)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn     *)tableColumn

{

NSTableColumn *NumberColumn = [tableView tableColumnWithIdentifier:@"No."];
NSSortDescriptor *NumberSortDescriptor = [NSSortDescriptor
                                    sortDescriptorWithKey:@"No."
                                    ascending:YES
                                    selector:@selector(compare:)];
[NumberColumn setSortDescriptorPrototype:NumberSortDescriptor];

NSTableColumn *CardNameColumn = [tableView tableColumnWithIdentifier:@"Card Name"];
NSSortDescriptor *CardNameSortDescriptor = [NSSortDescriptor
                                      sortDescriptorWithKey:@"Card Name"
                                      ascending:YES
                                      selector:@selector(compare:)];
[CardNameColumn setSortDescriptorPrototype:CardNameSortDescriptor];

NSTableColumn *TypeColumn = [tableView tableColumnWithIdentifier:@"Type"];
NSSortDescriptor *TypeSortDescriptor = [NSSortDescriptor
                                    sortDescriptorWithKey:@"Type"
                                    ascending:YES
                                    selector:@selector(compare:)];
[TypeColumn setSortDescriptorPrototype:TypeSortDescriptor];

NSTableColumn *RarityColumn = [tableView tableColumnWithIdentifier:@"Rarity"];
NSSortDescriptor *RaritySortDescriptor = [NSSortDescriptor
                                      sortDescriptorWithKey:@"Rarity"
                                      ascending:YES
                                      selector:@selector(compare:)];
[RarityColumn setSortDescriptorPrototype:RaritySortDescriptor];

NSTableColumn *UnlimitedColumn = [tableView tableColumnWithIdentifier:@"Unlimited"];
NSSortDescriptor *UnlimitedSortDescriptor = [NSSortDescriptor
                                      sortDescriptorWithKey:@"Unlimited"
                                      ascending:YES
                                      selector:@selector(compare:)];
[UnlimitedColumn setSortDescriptorPrototype:UnlimitedSortDescriptor];

NSTableColumn *FirstEditionColumn = [tableView tableColumnWithIdentifier:@"1st Edition"];
NSSortDescriptor *FirstEditionSortDescriptor = [NSSortDescriptor
                                      sortDescriptorWithKey:@"1st Edition"
                                      ascending:YES
                                      selector:@selector(compare:)];
[FirstEditionColumn setSortDescriptorPrototype:FirstEditionSortDescriptor];

}

- (void)tableView:(NSTableView *)tableView sortDescriptorsDidChange:(NSArray
                                                             *)oldDescriptors
{
[BaseSet sortUsingDescriptors: [tableView sortDescriptors]];
[tableView reloadData];

}

1 ответ

Я понял, что весь мой код был здесь верным. Проблема заключалась в том, что мое приложение сохраняло мой массив при завершении и сохраняло его до того, как я превратил строки в числа.

Другие вопросы по тегам