Swift의 초기화 방법 순서

1342 단어
Objective-C와 달리 Swift의 초기화 방법은 유형의 모든 속성이 초기화되어야 합니다.그래서 초기화 방법의 호출 순서에 신경을 많이 쓴다.어떤 종류의 하위 클래스에서 초기화 방법에서 문장의 순서는 임의가 아니다. 우리는 현재 하위 클래스의 실례의 구성원이 초기화가 끝난 후에야 상위 클래스의 초기화 방법을 호출할 수 있다.
 
  
class Cat {
    var name: String
    init() {
        name = "cat"
    }
}

class Tiger: Cat {
    let power: Int
    override init() {
        power = 10
        super.init()
        name = "tiger"
    }
}


일반적으로 하위 클래스의 초기화 순서는 다음과 같습니다.
1. 서브클래스가 스스로 초기화해야 할 매개 변수를 설정합니다. 파워=10.부류의 상응하는 초기화 방법을 호출합니다, 슈퍼.init() 3.부모 클래스에서 변경할 구성원을 설정합니다.name = "tiger"
그 중에서 세 번째 단계는 구체적인 상황에 따라 결정된다. 만약에 우리가 자류에서 부류의 구성원에 대한 변화가 필요하지 않으면 세 번째 단계는 존재하지 않는다.이런 상황에서 Swift는 자동으로 부류에 대응하는 init 방법을 호출한다. 즉, 2단계의 슈퍼이다.init () 도 쓰지 않아도 된다. (그러나 실제로는 호출된 것이다. 단지 간편한 Swift를 위해 우리가 완성한 것에 불과하다.)이 경우 초기화 방법은 간단해 보입니다.
 
  
class Cat {
    var name: String
    init() {
        name = "cat"
    }
}

class Tiger: Cat {
    let power: Int
    override init() {
        power = 10
        // super.init()
        // ,Swift
    }
}

좋은 웹페이지 즐겨찾기