Swift/Swift 기초문법
[Swift 기초문법 - 52] Optional Protocol
힛해
2024. 8. 19. 22:09
728x90
protocol Pet {
func doCry()
}
class Cat : Pet {
}
이렇게 구현하면 doCry가 정의되어 있지 않기때문애 Cat Class에서 반드시 정의해주어야한다.
이를 어떻게 해결 할 수 있는가.
1. extension을 통한 옵셔널
protocol Pet {
func doCry()
}
extension Pet {
func doCry(){}
}
class Cat : Pet {
}
2. Objective-C 을 활용한 옵셔널
@objc protocol Animal {
@objc func doMoreCry()
}
// 에러
class Cat : Animal{
}
위와 같이 @objc로 프로토콜을 선언할 수 있는데
objc의 경우 자체적으로 옵셔널이 존재한다.
@objc protocol Animal {
@objc optional func doMoreCry()
}
class Cat : Animal{
}