본문 바로가기

swift

[iOS] super.init(nibName: nil, bundle: nil) 이해하기

class VC: UIViewcontroller {

	var frog = ""
    var dog = ""
  required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    init(frog:String, dog:String) {
    	this.frog = frog
        this.dog = dog
        /*
         nibName이 nil 이더라도 xib 파일이 존재할 경우, xib 파일을 자동으로 로드한다.
         */
        super.init(nibName: nil, bundle: nil)
    }

 

nibName이 nil일 때
해당 뷰컨트롤러와 같은 이름의 xib 파일을 찾았다면 자동으로 그 xib를 열어주고

못찾았다면 빈 UIView를 해당 뷰컨트롤러의 view 프로퍼티에 할당한다.

하지만 loadView가 오버라이드 되면 이 기본동작이 변형될수 있다.

'swift' 카테고리의 다른 글

[Swift] Combine  (0) 2025.02.28
[Swift] map, flatMap, compactMap, reduce  (0) 2025.02.27
[iOS] NSCoder 생성 방법  (0) 2025.02.26
[Swift] UserDefaults.synchronize()  (0) 2025.02.04
값 타입의 널 처리 주의할 점  (0) 2025.01.23