根据ABPersonGetSortOrdering()的结果,我想按名字或姓氏对UILocalizedIndexCollation进行排序。
我在切换用于collationStringSelector参数的@selector时遇到问题。
简单地写这个很容易:
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)];
我也尝试了其他想法,但似乎没有任何效果。
有没有更好的方法动态传递选择器名称?
答案 0 :(得分:7)
您就在那里,只需从@selector()
左右移除sorter
部分:
sortedSubarray = [collation sortedArrayFromArray:[sections objectAtIndex:section] collationStringSelector:sorter];