약속
보통 delegate 패턴의 경우에는 **delegate,
스위프트 언어자체에서는 **ing, **able 등으로 프로토콜의 이름을 정함
프로토콜약속
프로토콜을 통해 맴버변수, 메소드 등을 꼭 구현하도록 강제
protocol Naming {
// 우리는 이런 변수를 가지고 있을겁니다. 라고 약속
var name : String { get set }
// 우리는 이런 메소드를 가지고 있을겁니다. 라고 약속
func getName() -> String
}
Nameing 프로토콜을 임플레먼트 했기 때문에
struct myName : Naming {
// name 맴버 변수를 설정하지 않으면 에러
var name: String
// getName() 메소드 설정 안하면 에러
func getName() -> String {
return "나는 " + self.name
}
}
var im = myName(name: "만쥬")
im.getName()
// 나는 만쥬
반응형