Если это имеет смысл для вашего класса / структуры, вы можете добавить соответствие Comparable
к типу, который хотите отсортировать:
extension MyClass: Comparable {
public static func ==(lhs: MyClass, rhs: MyClass) -> Bool {
return (lhs.stars ?? 0) == (rhs.stars ?? 0)
}
public static func <(lhs: MyClass, rhs: MyClass) -> Bool {
return (lhs.stars ?? 0) < (rhs.stars ?? 0)
}
}
После этого вы сможете напрямую использовать >
операторная функция (соответствующая Comparable
вызывает все остальные операторы сравнения >
, >=
, <=
):
groupedDictionariesValueUnwrapped.sort(by: >)
Под "осмыслением" я имею в виду тот факт, чтосоответствие Comparable
на основе свойства stars
добавляет значение к определению типа (например, тип называется Rating
и содержит информацию о проверке пользователя).