저는 Swift에서 iOS 앱을 만들고 Apple에서 제공하는 Lister 샘플 프로젝트를 사용하고 있습니다.Swift에서 NSObject 하위 클래스의 initializer에서 super.init() 호출
리스터는 두 개의 모델 개체 인 List 및 ListItem을 사용합니다. 둘 다 NSObject를 서브 클래스로 만들었지 만 둘 다 초기화 자에서 super.init()
을 호출하지 않는다는 것을 알았습니다.
그러나 Lister의 Objective-C 버전에서 두 모델 객체 (AAPLList 및 AAPLListItem)는 [super init]
을 호출합니다.
스위프트 프로그래밍 언어 명확하게 "지정된 이니셜 라이저가 자신의 바로 위 수퍼 클래스에서 지정된 초기화를 호출해야한다."고 주장한다 (초기화의 이니셜 체인의 규칙 1)
여기 무슨 일이야? 이 예외가있는 이유는 무엇입니까 항상 하위 클래스에서 super.init()를 호출하면 어떤 규칙이 적용됩니까?