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 적용가능