2 дня назад я задал вопрос, как отсортировать элементы по второму слову в строках объекта исортировать по NSDictionary дает другой результат, чем-то на NSArray
я получил решение here
, но теперь я застрял в новый вопрос
Рассмотрим меня
NSArray с -> имена и
NSDictionary с прежним -> имена (из NSArray) как значение и электронного идентификатор в качестве ключа
И моего NSArray содержит
"Test Teacher"
"Anonymous"
"Dok Teacher"
и мой NSDictionary содержит
"Dok Teacher" --"[email protected]"
"Anonymous" -- "[email protected]"
"Test Teacher" --"[email protected]"
Как мне нужно отсортировать этот массив и словарь i отсортировал их по методу, указанному в ссылке выше
, но кормовой эр сортировка Я получаю данные, как следовать
NSArray после сортировки на втором слове
"Anonymous"
"Test Teacher"
"Dok Teacher"
NSDictionary после сортировки на втором слове значений
"Anonymous" -- "[email protected]"
"Dok Teacher" --"[email protected]"
"Test Teacher" --"[email protected]"
почему так Dok Учителя и испытания Учитель на разных позах в словаре и в nsarray, после использования того же метода для сортировки.
И как получить их в одном порядке для массива и словаря.
код для сортировки NSArray:
NSMutableArray *sortedArray = [NSMutableArray arrayWithArray:[teachersNames sortedArrayUsingComparator:^NSComparisonResult(id a, id b) {
NSString *firstTeacher2ndWord = [[[((NSString*)a) componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
NSString *secondTeacher2ndWord = [[[((NSString*)b) componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
return [firstTeacher2ndWord compare:secondTeacher2ndWord];
}]];
NSLog(@"After %@",sortedArray);
teachersSrc=[NSMutableArray arrayWithArray:sortedArray];
код для сортировки NSDictionary
myArray = [teachersList keysSortedByValueUsingComparator:^NSComparisonResult(id a, id b) {
NSString *firstTeacher2ndWord = [[[((NSString*)a) componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
NSString *secondTeacher2ndWord = [[[((NSString*)b) componentsSeparatedByString:@" "] objectAtIndex:1] lowercaseString];
return [firstTeacher2ndWord compare:secondTeacher2ndWord];
}];
NSLog(@"After %@",myArray);
EDIT:
я также пытался сортировать по имени как для массива и словаря, а затем сортировка по фамилии для обоих, но ее вообще не работает,
Редактировать свой вопрос с помощью правильного отступа. – Tirth
Где код? –
Почему вы поддерживаете два набора параметров, массив и словарь? – Retro