Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

개발자의 삽질

[iOS] "Class ViewController has no initializers" 에러 고치기 본문

iOS

[iOS] "Class ViewController has no initializers" 에러 고치기

uniqueimaginate 2022. 2. 7. 13:10

https://www.hackingwithswift.com/example-code/language/fixing-class-viewcontroller-has-no-initializers

 

Fixing "Class ViewController has no initializers" - free Swift 5.4 example code and tips

Was this page useful? Let us know! 1 2 3 4 5

www.hackingwithswift.com

 


ViewController에 프로퍼티를 두고 싶다!

클래스에 프로퍼티를 담을 때는 초기값을 갖고 있거나 생성자를 통해 초기화 과정을 거쳐야 한다.

그러면 ViewController는 어떻게 할까?

일단 아래의 코드는 에러를 발생한다.

class ViewController: UIViewController {
    var username: String
}

아주 단순한 해결책으로는 초기값을 제공해주면 된다.

class ViewController: UIViewController {
    var username: String = "Anonymous"
}

조금 복잡한 해결책으로는 생성자를 이용해야 한다.

주의 할 점은 required init? 이 필요하다는 것이다.

required init?(coder aDecoder: NSCoder) {
    self.username = "Anonymous"
    super.init(coder: aDecoder)
}

사실 UIViewController를 상속받는 ViewController에서의 저장 프로퍼티를 선언하는 것이나, 일반적인 클래스에 저장 프로퍼티를 선언하는 것이나 큰 틀에서 같다. 다만 required init 의 차이로 볼 수 있을 것이다.

Comments