сортировка массива в табличном виде - PullRequest
0 голосов
/ 27 марта 2011

У меня есть массив и таблица, которая получает свои данные из массива. Когда я просматриваю табличный вид на iPhone, он, конечно, не отсортирован, а в списке, как я их написал.

Я хочу отсортировать мой массив в табличном представлении, чтобы они не отображались так:

  • D
  • A
  • G
  • F
  • S

но указывается так:

  • A
  • B
  • C
  • D
  • E
  • Etc ...

Как я могу это сделать?

Вот мой массив:

stationList = [[NSMutableArray alloc] init];
[stationList addObject:@"A"];
[stationList addObject:@"B"];
[stationList addObject:@"C"];

Как мне загрузить массив в мой массив таблиц? Загрузка массива:

NSString *cellValue = [stationList objectAtIndex:indexPath.row];
cell.textLabel.text = cellValue;

Ответы [ 3 ]

4 голосов
/ 27 марта 2011

Используйте [stationList sortUsingFunction:compareLetters context:whateveryouwant_ornil]

И

NSComparisonResult compareLetters(id t1, id t2, void* context) {

      do the tests you want beetween t1 and t2, and return the result
      like :

      if (the test) return NSOrderedDescending, NSOrderedAscending or NSOrderedSame
}

В вашем примере вы должны сделать:

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

Перейдите к приведенному ниже учебнику для сортировки NSArray, они объяснили базовую технику сортировки NSArray.

. Вы также можете загрузить образец кода, приведенный в конце учебника. Вот ссылка.

0 голосов
/ 05 мая 2011

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

Здесь запись - NSMutableArray. Имя столбца, по которому Coulmn вы хотите отсортировать. В моем случае у меня было более одного столбца для сортировки. И сортировка берет данные BOOL.

После заполнения я перезагружаю свой TableView.



    NSSortDescriptor * frequencyDescriptor = [[NSSortDescriptor alloc] initWithKey:columnName ascending:YES];

    NSArray * descriptors = [NSArray arrayWithObjects:frequencyDescriptor, nil];
    [record sortUsingDescriptors:descriptors];
    [columnName release];
    [frequencyDescriptor release];
    [myTableView reloadData];   



Надеюсь, это нормально. Дайте мне знать, если я смогу сделать это лучше

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