Вы присваиваете свой Int
идентификатор каждому случаю, например:
enum PurchaseTimeType: Int, CaseIterable {
case asap = 1
case thisMonth = 2
case nextMonth = 3
// All above cases can also be written in one line, like so
// case asap = 1, thisMonth, nextMonth
var id: Int {
return self.rawValue
}
var title: String {
switch self {
case .asap:
return "ASAP"
case .thisMonth:
return "This Month"
case .nextMonth:
return "Next Month"
}
}
}
Использование-1
let purchaseTime: PurchaseTimeType = .thisMonth
print(purchaseTime.id, ":", purchaseTime.title)
Использование-2: Фильтр по идентификатору
let id = 1
if let type = PurchaseTimeType.allCases.first(where: { $0.id == id } ) {
print("Title for \(id) is \(type.title)")
}
Примечание Я обновил имена дел с UPPERCASE , чтобы следовать соглашению, каждый случай должен иметь имя lowerCamelCase с заглавной первой буквой и заглавной буквой для каждого последующего слова.