Установка NSMutableArray после сортировки - PullRequest
0 голосов
/ 24 июня 2011

У меня есть NSMutableArray объектов Marker, которые отображаются в UITableView. У меня есть segmentedControl для сортировки данных. Я знаю, что моя сортировка по Имени работает, когда я проверяю свою информацию следующим образом:

 // Create sort descriptors
    NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"Name" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:descriptor, nil];
    NSArray *sortedArray = [self.MarkersList sortedArrayUsingDescriptors:sortDescriptors];

    for (Marker *m in self.MarkersList) {
        NSLog(@"-Name: %@", m.Name);
    }
    for (Marker *m in sortedArray) {
        NSLog(@"sorted - Name: %@", m.Name);
    }

Тогда я не знаю лучшего способа перезагрузить мои данные для UITableView. Я думал, что смогу сделать ниже, но это в основном просто удаляет все объекты, и теперь у меня ничего нет в self.MarkersList.

  if ([segmentControl selectedSegmentIndex] == 0) {
        if (self.MarkersList != nil) {
            [self.MarkersList removeAllObjects];

            [self.MarkersList arrayByAddingObjectsFromArray:sortedArray];
            [self.MarkersTableView reloadData];
            NSLog(@"%s", __FUNCTION__);

            for (Marker *m in self.MarkersList) {
                NSLog(@"Name: %@", m.Name);
            }   
        }        
    }

Я определенно упускаю что-то очевидное на данный момент. Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 24 июня 2011

Заменить:

[self.MarkersList arrayByAddingObjectsFromArray:sortedArray];

С:

[self.MarkersList addObjectsFromArray:sortedArray];

Найди ошибку и радуйся!

...