У меня есть набор словарей, которые я пытаюсь получить для каждого игрока в массиве. У каждого игрока может быть несколько записей. Я пытаюсь получить массив словарей каждого лучшего игрока.Максимальное значение для каждого объекта в массиве словарей
NSArray [0] - NSDictionary
- [0] Score: (double)20.7
- [1] NameID: (int) 1
- [2] Date
[1] - NSDictionary
- [0] Score: (double)25
- [1] NameID: (int) 1
- [2] Date
[2] - NSDictionary
- [0] Score: (double)28
- [1] NameID: (int) 2
- [2] Date
[3] - NSDictionary`
- [0] Score: (double)26
- [1] NameID: (int) 3
- [2] Date
Я пробовал использовать предикат NSPredicateWithFormat, но я могу только вернуть max для всего массива, не связанного с именем.
Ожидаемые результаты:
NSArray [1] - NSDictionary
- [0] Score: (double)25
- [1] NameID: (int) 1
- [2] Date
[2] - NSDictionary
- [0] Score: (double)28
- [1] NameID: (int) 2
- [2] Date
[3] - NSDictionary`
- [0] Score: (double)26
- [1] NameID: (int) 3
- [2] Date
Спасибо за помощь.
Пробовали ли вы положить NameID в вашем NSPredicate? Как вы устанавливаете свой NSPredicate? –
Я не уверен, как добавить NameID в предикат и оценить максимальный балл ... Я пробовал много разных способов, включая подзапросы, но мне что-то не хватает ... Я пробовал это, но позже обнаружил, что это было совершенно неправильно. .. NSPredicate * predicate1 = [предикат NSPredicateWithFormat: @ "SELF.Score = NameID. @ Max.Score"]; – Shorty07
Не переусердствуйте. Просто перебирайте массив словарей, создавая свой выходной словарь, когда идете.Для каждого идентификатора игрока просто проверяйте оценку по отношению к той, что находится в выходном словаре (если есть), и обновляйте вывод, если требуется – Paulw11