로딩
요청 처리 중입니다...

[swift] protocol optional requirement (프로토콜 선택적 요구)

 [swift] protocol optional requirement (프로토콜 선택적 요구)

프로토콜의 정의 된 것 이 항상 구현이 되는게 아니라면, @objc 를 붙여주면된다. 그리고 해당 요구사항의 정의 앞에 optional을 붙여주면 된다.

다만 @objc 가 붙은 protocol은 class에서만 채택할 수 있다.(Objective-c 클래스를 상속받은 것: swift의 클래스) import Foundation @objc protocol Moveable { func walk() @objc optional func fly() } class Tiger: Moveable { func walk() { print("tiger walks") } } class Bird: Moveable { func walk() { print("brid walks") } func fly() { print("bird flys") } } /* error: non-class type 'Stone' cannot conform to class protocol 'Moveable' struct Stone: M...