NSArray *aryFName = @[ @"Alice", @"Bob", @"Charlie", @"Quentin" ]; NSArray *aryLName = @[ @"Smith", @"Jones", @"Smith", @"Alberts" ]; NSArray *aryAge = @[ @24, @27, @33, @31 ]; //Create a Custom class with properties for firstName & lastName of type NSString *, //and age, which is an NSUInteger. NSMutableArray *aryPerson = [NSMutableArray array]; [firstNames enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { Person *person = [[Person alloc] init]; person.firstName = [aryFName objectAtIndex:idx]; person.lastName = [aryLName objectAtIndex:idx]; person.age = [aryAge objectAtIndex:idx]; [aryPerson addObject:person]; }]; NSSortDescriptor *firstNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"firstName" ascending:YES selector:@selector(localizedStandardCompare:)]; NSSortDescriptor *lastNameSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"lastName" ascending:YES selector:@selector(localizedStandardCompare:)]; NSSortDescriptor *ageSortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO]; NSLog(@"By age: %@", [aryPerson sortedArrayUsingDescriptors:@[ageSortDescriptor]]); // "Charlie Smith", "Quentin Alberts", "Bob Jones", "Alice Smith" NSLog(@"By first name: %@", [aryPerson sortedArrayUsingDescriptors:@[firstNameSortDescriptor]]); // "Alice Smith", "Bob Jones", "Charlie Smith", "Quentin Alberts" NSLog(@"By last name, first name: %@", [aryPerson sortedArrayUsingDescriptors:@[lastNameSortDescriptor, firstNameSortDescriptor]]); // "Quentin Alberts", "Bob Jones", "Alice Smith", "Charlie Smith"
Read Articlehttps://develop.horje.com/learn/1434/reference