-
[Swift] Protocol 과 DelegateSwift 2022. 6. 14. 09:53
1. Protocol 내부에 작성된 함수는 실문행을 작성할수 없다.
2. Protocol 은 base class 보다 더 Abstract한 개념이다.
3. Delegate는 호출자와 실행자가 있는데 (내가 붙인 개념임) 둘 사이를 연결하는 일종의 Trigger 역할을 한다
4. Caller는 delegate을 선언하고 접근해서 호출한다
5. Acter는 delegate를 상속한다. 그리고 init을 통해 caller의 delegate는 self임을 할당해준다
// Protocol protocol someDelegate { func trigger() // 실행문이 없다 } // Caller class Caller { // delegate 선언 var delegate: someDelegate? // delegate을 통해 함수를 실행한다 func activateTrigger() { delegate?.trigger() } } // Actor class Actor: someDelegate { // Caller와 delegate을 통해 통신할수 있도록 할당해준다 init(handler: Caller) { handler.delegate = self } // delegate을 통해 Caller에서 호출시 실행될 함수 func trigger(){ print("trigger has been activated") } } let caller = Caller() let actor = Actor(handler: caller) // caller가 호출하면 actor의 trigger가 실행된다 caller.activateTrigger() // console // -> trigger has been activated
'Swift' 카테고리의 다른 글
[Swift] Completion Handler (0) 2022.07.03 [Swift] lazy property 에 대해서 (0) 2022.06.17 [Swift] Package : WrappingHStack (0) 2022.05.25 [Swift] class : inheritance, instance, method, override (0) 2022.05.10 [Swift] Nil 병합 연산자(Nil-Coalescing Operator) (0) 2022.04.05