В зависимости от результата ABPersonGetSortOrdering (), я хочу отсортировать UILocalizedIndexCollation по имени или фамилии.
У меня проблемы с переключением @selector, используемого для параметра collationStringSelector.
Было бы очень легко просто написать это подробно:
NSArray *sortedSubarray;
if (ABPersonGetSortOrdering() == 0) {
sortedSubarray = [collation sortedArrayFromArray:[sections objectAtIndex:section] collationStringSelector:@selector(fname)];
} else {
sortedSubarray = [collation sortedArrayFromArray:[sections objectAtIndex:section] collationStringSelector:@selector(lname)];
}
Я попробовал что-то вроде этого без удачи:
SEL sorter = ABPersonGetSortOrdering() == 0 ? NSSelectorFromString(@"fname") : NSSelectorFromString(@"lname");
sortedSubarray = [collation sortedArrayFromArray:[sections objectAtIndex:section] collationStringSelector:@selector(sorter)];
Я пробовал и другие идеи, и, похоже, ничего не работает.
Есть ли лучший способ передать имя селектора динамически?