Как отсортировать NSMutableArray с пользовательским объектом?

У меня есть изменяемый массив с объектами «XX», и я хочу отсортировать массив в соответствии с переменными, содержащимися в объекте «XX» (см. ниже структуру объекта).

Я хочу отсортировать массив по возрастанию по VALUE1, VALUE2, а затем по NAME.

Есть ли способ сделать это?

@interface XX:NSObject{

float VALUE1;
float VALUE2
NSString* NAME;

}

@end interface

Любая помощь, очень ценится !!! :-) Спасибо!

1
nl ja de

1 ответы

То, что вам нужно использовать, называется Блок компаратора . Это можно использовать для сортировки массива, когда вы делаете

array sortUsingComparator: ^(id objA, id obj2){
   if(((XX*)objA).Value1 > ((XX*)obj2).Value1){
        return (NSComparisonResult)NSOrderedDescending;
   }else if(((XX*)objA).Value1 < ((XX*)obj2).Value1){
        return (NSComparisionResult)NSOrderedAscending;
   }else{
      //keep comparing here, because value 1 are equal
   }
   //sorting logic goes here, returning a (NSComparisonResult) type here
}];
1
добавлено
Благодаря!!!! Это очень полезно! :-)
добавлено автор user1595462, источник