У меня есть NSMutableDictionary
, который содержит ключи, которые являются NSString
s, и значениями, которые являются объектами типа «Фракция». Это настраиваемый объект, который я создал, и это именно то, что он есть, фракции, состоящие из числителя и знаменатель (каждый из них является int). То, что я хотел бы сделать, это получить массив значений (в данном случае, «доля» объектов) из NSMutableDictionary
, а затем отсортировать массив, используя @selector
следующим образом:Попытка сортировать NSMutableDictionary по значениям с помощью @selector в iOS
NSArray *myFractions = [myDict allValues];
NSArray *sortedFractions = [myFractions sortedArrayUsingSelector:@selector(comparator)];
или
NSArray *myFractions = [myDict allValues];
NSArray *sortedFractions = [myFractions sortedArrayUsingFunction:comparatorFunction context:nil];
Мой вопрос в том, как мне создать метод comparatorFunction, который будет сортировать объекты «Fraction» в порядке наибольшего, наименьшего? Помните, что каждый объект «Фракция» состоит из двух переменных: числителя типа int и знаменателя, который также имеет тип int.
Этот вопрос отличается от других, которые были опубликованы, потому что здесь я спрашиваю о том, как в методе «sortedArrayUsingFunction» я должен сортировать объекты «Фракция» от максимального до наименьшего. Другие вопросы, которые считались дубликатами, рассматривали сортировку на основе объектов NSDate или на основе значений NSString, тогда как мои разные. Как я уже сказал, я очень новичок в этом и нуждаюсь в чем-то более конкретном.
Заранее спасибо.
Спасибо за ваш быстрый ответ. Должен ли он [dict allValues] вместо [dict allObjects]? – syedfa
@syedfa Это обязательно должно быть. – 2013-03-10 11:08:16
Большое спасибо BiCarbonate, ваше решение сработало! – syedfa