iOS
[iOS] "Class ViewController has no initializers" 에러 고치기
uniqueimaginate
2022. 2. 7. 13:10
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
의 차이로 볼 수 있을 것이다.