// 기본 case로 타입들을 구분하는 경우
enum Membership {
case bronze
case silver
case platinum
..
}
// 케이스별로 원시값을 부여하는 경우
enum isPaid: Int {
case free_trial = 0
case one_month = 1
case half_year = 2
..
}
Membership.bronze
isPaid.one_month.rawValue // 1
enum User {
case paid(grade: GradeEnum, signDate: Date)
case noPaid
}
enum APIURLs {
static let aAPI = "https//..."
enum Keys: String {
case movie = "asdd-e.."
}
}
enum ControlUserDefaults {
private static let key = "k"
static var userDefaults: String {
get {
return UserDefaults.standard.string(forKey: key) ?? ""
}
set {
UserDefaults.standard.setValue(newValue, forKey: key)
}
}
}
func someFn() {
ControlUserDefaults.userDefaults = "저장할 값" // set
ControlUSerDefaults.userDefaults // get
}
enum Styling {
enum Color {
static let primary: UIColor = .systemBlue
}
enum Font {
static let sm: UIFont = .systemFont(ofSize: 13)
}
}
enum Options: String, CaseIterable {
case A
case B
case C
}
Options.allCases[0].rawValue
// 마치 배열처럼 사용할 수 있다.
// static var allCases: [Options] { get }
@frozen public enum Optional<Wrapped> {
case none
case some(Wrapped)
}