본문 바로가기
iOS/설명

[iOS] Class의 instance를 String으로 생성하기

by Sky Titan 2021. 12. 10.
728x90

 특정 UIView를 String으로만 dynamic하게 instance를 생성하려고 한다.

 

className()

extension UIView {
    public static func className() -> String {
        return String(reflecting: Self.self)
    }
}
  • 해당 UIView Class name을 가져오는데 최종적으로 "module이름.Class이름" 과 같은 형태로 만들어진다
    • class 생성 시 앞의 Module이름은 반드시 필요하다.

 

View instance 생성

let viewClass = TestView.className() // 이 부분은 생성하고자 하는 View의 ClassName을 가져와서 dynamic하게 변경가능
let type = NSClassFromString(viewClass) as! UIView.Type
let view = type.init(frame: frame)
contentView.addSubview(view)
  • 생성하고자 하는 View의 className() 을 호출해서 class String을 가져온다.
  • NSClassFromString으로 type instance를 생성한다.
  • type의 initalizer를 호출해서 해당 View instance를 생성한다.
728x90

'iOS > 설명' 카테고리의 다른 글

[iOS] UIResponder  (0) 2022.01.04
[iOS] Provisioning Profile, Certificate, Code signing  (0) 2021.12.19
[iOS] CALayer의 anchorPoint, position  (0) 2021.12.08
[iOS] isBeingPresented, isBeingDismissed  (0) 2021.12.07
[iOS] CALayer  (0) 2021.12.05

댓글