enum : 상속

신동준·2022년 4월 29일
0

enum Series

목록 보기
5/7

enum시리즈에 중요한 사실을 알았다
enum을 class 상속을해서 사용하면 해당 클래스의 특징을 enum case 적용할수있다
밑에는 Int 와 Error 클래스 상속 enum이다

enum Device: Int {
    case iPhone4,iPhone5,iPhone6,iPhone7, iPhone8, iPhoneX, iPhone11, iPhone12, iPhone13

}

let myPhone:Device! = Device(rawValue: 0)
let otherPhone:Device! = Device(rawValue: 5)
print(myPhone)
print(otherPhone)


enum XcodeError: Error {
    case compile
    case runtime
    case nilerror
}


struct Xcode {
    let e:XcodeError
    let projectName:String
    func findError(error: XcodeError) {
        switch error {
        case .compile:
            print("Compile Error Occur")
        case .runtime:
            print("Runtime Error Occur")
        case .nilerror:
            print("nilException Error Occur")
        @unknown default:
            print("Unknow Error Occur")
        }
    }
}

let myApp = Xcode(e:.compile, projectName: "MyFirstProject")
let someError = XcodeError.compile
myApp.findError(error: someError)

Int 상속해서 RawValue 인덱스 접근할수있거나
Error 상속해서 error에 if else 말고 switch 적용가능

profile
Swift 예비개발자

0개의 댓글