2015-12-17 1 views
1

У меня есть два массива, которые сортируются на основе одного с различным количеством объектов NSNumber. Когда я пришел, чтобы отсортировать его, у возвращаемого массива имен был один из удаленных элементов - почему это было бы ?! Код:NSSortDescriptor Извлечение элементов из массива для отсутствия очевидных причин

NSDictionary *temp = [NSDictionary dictionaryWithObjects:self.names forKeys:self.times]; 
      NSSortDescriptor *theDescriptor = [NSSortDescriptor sortDescriptorWithKey:nil ascending:NO selector:@selector(compare:)]; 
      self.times = [[temp allKeys] sortedArrayUsingDescriptors:[NSArray arrayWithObject:theDescriptor]]; 
      self.names = [temp objectsForKeys:self.finishedTimes notFoundMarker:[NSNull null]]; 
+1

Почему вы не просто используете 'sortedArrayUsingSelector:'? Можете ли вы показать нам набор входных данных и объяснить, почему вы считаете, что элемент удален? – Tommy

+0

Спасибо за ваш ответ @Tommy - проблема все же возникает после использования sortedArrayUsingSelector, к сожалению. Я знаю, что элемент удален, когда я регистрирую до и после его обработки, и элемент удаляется: P Будут ли появляться какие-либо другие решения? –

+0

Можете ли вы показать нам набор входных данных, метод, который вы используете для регистрации и вывода, который вы видите? – Tommy

ответ

0

Я побежал следующее:

NSDictionary *temp = 
@{ 
    @"Name 2" : @"Time 2", 
    @"Name 1" : @"Time 1", 
    @"Name 3" : @"Time 3", 
}; 

NSArray *times = [[temp allKeys] sortedArrayUsingSelector:@selector(compare:)]; 
NSLog(@"Names: %@", [temp objectsForKeys:times notFoundMarker:[NSNull null]]); 

Выход был, как и ожидалось:

2015-12-17 10:37:52.879 Test[6503:273457] Names: (
    "Time 1", 
    "Time 2", 
    "Time 3" 
) 

NSArray не удаляет элементы при сортировке; ваша проблема заключается в некотором коде, который вы не раскрываете.

 Смежные вопросы

  • Нет связанных вопросов^_^