У меня есть перечисление, по которому я пытаюсь отсортировать, чтобы получить порядок A, B, C, D и т. Д. Необработанные значения не соответствуют этому порядку. Как и в Swift 4.2, добавление соответствия CaseIterable означает, что BasePitches.AllCases дает мне массив [BasePitches], но если я попытаюсь
x = BasePitches.AllCases.sorted () Я получаю ошибку:
Элемент экземпляра 'sorted' нельзя использовать для типа '[BasePitches]'. Это верно, даже если я сделаю это сопоставимым и добавлю свою собственную сопоставимую функцию для сравнения строк с именами дел (вместо использования необработанных значений, которые дадут мне неправильный порядок). Кто-нибудь может помочь в этом, пожалуйста? Thx
enum BasePitches: Int, CaseIterable, Comparable {
case C = 0
case D = 2
case E = 4
case F = 5
case G = 7
case A = 9
case B = 11
// Implement Comparable
public static func < (lhs: BasePitches, rhs: BasePitches) -> Bool {
return String(describing: lhs) < String(describing: rhs)
}
}