Protocols and Delegates

권현석·2022년 12월 27일
0

prototocol and delegate

목록 보기
3/3

  • EmergencyCallHandler가 var delegate: AdvancedLifeSupport?를 가짐으로 인해 delegate가 누구든 상관없이 EmergencyCallHandler는 performCPR을 하도록 할 수 있다.
init(handler: EmergencyCallHandler) {
        handler.delegate = self
    }
  • 위의 코드는 paramedic이 출근하면 bleep을 차고 handler가 자신에게call을 보낼 수 있게 설정하는 과정이다. 이는 아래 코드에서 Doctor에도 똑같이 적용되고, Surgeon은 Doctor Class를 inherit하기 때문에 init이 따로 필요없다.

let alex = Surgeon(handler: emilio )
  • 위의 코드에 의해 alex는 출근하자마자 handler가 emilio인걸 알게된다.
    이 형태는 init(handler: EmergencyCallHandler)를 보고 알 수있다.
emilio.medicalEmergency()
  • 이 코드는 위의 alex를 Surgeon으로 선언했기 때문에 Surgeon Class의 performCPR 메서드를 수행하게 한다. 만약, alex가 Doctor로 선언되면 Doctor Class의 performCPR 메서드를 수행한다.
profile
wanna be an iOS developer

0개의 댓글

관련 채용 정보