Используйте NSArray
sortedArrayUsingFunction:
с функцией, которая упорядочивает сначала по позиции поискового термина, а затем по естественному порядку строк.
NSInteger sorter(id arg1, id arg2, void *context)
{
NSString *searchTerm = (NSString *)context;
NSRange range1 = [arg1 rangeOfString:searchTerm];
NSRange range2 = [arg2 rangeOfString:searchTerm];
if (range1.location < range2.location)
return NSOrderedAscending;
if (range1.location > range2.location)
return NSOrderedDescending;
return [arg1 compare:arg2];
}
NSArray *array = [NSArray arrayWithObjects:@"axd", @"bxd", @"xdd", @"gtxd", @"xdc", nil];
NSArray *sortedArray = [array sortedArrayUsingFunction:sorter context:@"xd"];
Это печатает:
2011-02-15 01:33:49.642 GreatApp[78849:a0f] (
xdc,
xdd,
axd,
bxd,
gtxd
)