NSSortDescriptor с двумя одинаково важными ключами

Я создаю NSFetchedResultsController для своего объекта, который имеет два атрибута, скажем, shortName и longName. Все управляемые объекты имеют только короткое имя или длинное имя.

Как я могу одновременно сортировать объекты по обоим атрибутам (точнее, по тому, который не равен нулю)?

Очевидно, что следующее не будет работать в моем случае:

NSSortDescriptor *sortDescriptor1 = [[NSSortDescriptor alloc] initWithKey:@"shortName" ascending:YES];
NSSortDescriptor *sortDescriptor2 = [[NSSortDescriptor alloc] initWithKey:@"longName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor1, sortDescriptor2, nil];

person Gytis    schedule 23.07.2013    source источник


Ответы (1)


Это довольно интересно, но я почти уверен, что это невозможно сделать. Простое присвоение shortName атрибуту longName, если длинного имени нет, при вставке в вашу базу данных было бы лучшим решением для меня и простой сортировкой по longName.

person ambientlight    schedule 24.07.2013
comment
спасибо, это может быть вариант, однако я считаю, что должно быть более элегантное решение - person Gytis; 24.07.2013
comment
Вероятно, вы можете попытаться создать подкласс NSFetchedResultsController, это было бы элегантно, но мне также любопытно, есть ли простое решение для этого. - person ambientlight; 24.07.2013