제라스의 iOS 공부/Swift 문법
[Swift 문법] 프로토콜 옵셔널 - Protocol을 반드시 다 담진 않아도 된다고?
Xerath(제라스)
2023. 8. 19. 15:19
728x90
반응형
프로토콜은 그걸 준수하기 위해 쓴다.
근데...
어떤 경우엔 안쓰고 싶을 수도 있잖아..!!
그래서 방법으로 extension을 활용해서 init을 분리해서 반드시 상속하진 않아도 되는 방식으로 짜기도 했다.
하지만 또 다른 근본적인 방법을 고안해보면
@objc를 활용하는 방식이 있을 수 있다.
다음 코드를 보도록 하자.
import UIKit
// 원래 이런 방식으로 extension에 적용함으로서 doCry를 반드시 구현하지 않아도 되도록 구현할 수도 있지만,
protocol Pet {
}
extension Pet {
func doCry(){}
}
// 이런 식으로 오브젝트-c 프로토콜 내에서 optional 키워드를 주면
// 해당 멤버는 반드시 구현하지 않아도 문제가 없도록 프로토콜을 적용할 수 있다.
@objc protocol Animal {
@objc optional func doMoreCry()
}
class Cat : Animal {
}
728x90
반응형