본문 바로가기

Tech/iOS

[iOS] Day 25 - Protocol

728x90

Protocol 배우기 전

이름부터 무섭게 생겨서

움찔했지만 꼭 필요한 친구였다

오늘도 달려보자


Protocol

어원 그대로 규약이다 -> 실제 구현은 프로토콜이 채택된 곳에서 이행한다

DelegatePattern을 구현하기 위해 이용한다

특정 컨틀롱에서 발생하는 이벤트를 효율적으로 관리하기 위해 Delegate에게 위임하고, 실제 이벤트 발생시에 Delegate가 callBack method를 호출해준다

 

Optional Protocol

@objc
protocol viewPresentableProtocol {
    
    var navigationTitleString: String {get set}
    var backgroundColor: UIColor { get }
    static var identifier: String { get }
    
    func configureView()
    @objc optional func configureLable()
    @objc optional func configureTextField()
}

protocol 앞에 @objc 선언해주고 func 앞에도 @objc optional 선언

-> class에서만 사용 가능하다(@objc 특성을 사용하기 때문에)  

 

Protocol Method

중괄호를 사용하지 않고 인스턴스 메서드와 타입 매서드 요구 가능

 

Protocol Property

protocol viewPresentableProtocol {
    
    var navigationTitleString: String {get set}
    var backgroundColor: UIColor { get }
    static var identifier: String { get }
}

Property 요구 할때는 무조건 var로 선언 최소 구현 요청은 get이며 필요할 때 set 구현 요청을 한다

저장 프로퍼티 연산 프로퍼티 다 가능하다

 

'Tech > iOS' 카테고리의 다른 글

[iOS] Day 26 - Custom Font  (0) 2022.07.29
[iOS]Day 26 - Notification  (0) 2022.07.29
[iOS] Day 25 - UIPickerView & WebView  (0) 2022.07.28
[iOS] Day 24 - Property Observer  (0) 2022.07.27
[iOS] Day 23 - Computed Property  (0) 2022.07.26