0

У меня есть NSArray, называемые объектами. Этот массив мог бы выглядеть так:Сортировать NSArray от других NSMutableDictionary

[0] 
    "name" => blaBlaBla 
    "foo" => b 
    "bar" => c 

[1] 
    "name" => bluBluBlu 
    "foo" => b 
    "bar" => c 

У меня также есть NSMutableDictionary, который меняется каждую секунду. Это будет выглядеть так:

['blaBlaBla'] 
    "sortValue" => 1 

['bluBluBlu'] 
    "sortValue" => 4 

Я хотел бы представить свои данные в массиве в UITableView. Я хотел бы представить его в порядке убывания «sortValue» NSMutableDictionary

Как это сделать. Я пробовал NSSortDescriptor, но я могу только получить это, чтобы отсортировать мой NSMutableDictionary, а не мой NSArray.

Заранее спасибо.

ответ

0

Метод NSArray sortedArrayUsingComparator: принимает блок, который сравнивает два объекта. Вы можете написать этот блок любым способом, в том числе с помощью словаря для поиска значений сортировки для каждого элемента массива.

Если ваш словарь sortValue изменяется в другом потоке, вам необходимо скопировать его перед сортировкой, чтобы избежать его изменения из-под процесса сортировки. Если и сортировка, и изменения в словаре происходят в основном потоке, тогда нет проблем.