I would put the two arrays into a dictionary as keys and values. Then you can sort the first array (acting as keys in the dictionary) and quickly access the dictionary’s values in the same order. Note that this will only work if the objects in the first array support
NSCopying because that’s how
The following code should do it. It’s actually quite short because
NSDictionary offers some nice convenience methods.
// Put the two arrays into a dictionary as keys and values NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:secondArray forKeys:firstArray]; // Sort the first array NSArray *sortedFirstArray = [[dictionary allKeys] sortedArrayUsingSelector:@selector(compare:)]; // Sort the second array based on the sorted first array NSArray *sortedSecondArray = [dictionary objectsForKeys:sortedFirstArray notFoundMarker:[NSNull null]];