Swift/Tip

Type의 문자열 이름 사용하기

까칠코더 2022. 4. 1. 01:08
반응형

특정 Struct나 Class등 여러가지 타입들의 문자열 이름이 필요할때가 있습니다.
직접 타이핑하거나 type(of:) 등의 함수를 바로 사용해도 되지만 아래와 같이 프로토콜을 작성해서 사용하는 방법도 있습니다.

protocol TypeDescribable {
    var typeName: String { get }
    static var typeName: String { get }
}

extension TypeDescribable {
    var typeName: String {
        String(describing: type(of: self))
    }
    static var typeName: String {
        String(describing: self)
    }
}


struct MyData: TypeDescribable {
    var index: Int?
    var name: String?
}

let myData = MyData()
print(myData.typeName) // "MyData"
print(MyData.typeName) // "MyData"

 

반응형