apple/iOS, UIKit, Documentation
Swift Protocol (@objc, extension 기본 구현)
lgvv
2022. 1. 31. 02:42
Swift Protocol (@objc, extension 기본 구현)
프로코콜을 작성할 때 @objc 키워드를 이용하면 optional 처리하여 채택하는 쪽에서 기본 구현을 하지 않아도 되었음.
근데 개발을 하다 보니까 @ojbc를 사용하지 않으면서 처리할 수 있는 방법이 없을까 찾아보기 시작
근데 UITableViewDelegate를 까보니까 내부 구현이 Swift인데, 기본 구현을 강제하지 않음.
그러니까 프로토콜 구현에 @objc 없이 사용 가능
해결
Swift로 작성할 때는 protocol의 extension을 추가해 메서드를 구현해주면 됨
관련 개념으로는 Mixin이 있음 참고에 링크 추가
protocol MyInterface {
func add()
func remove()
}
extension MyInterface {
func add() { }
}
class MyFeature: MyInterface {
func remove() { }
// func add() { } 구현하지 않고 호출할 경우 MyInterface에 extension에 구현된 코드를 호출
}
(참고)
Swift Mixin and Trait
Swift Mixin and Trait iOS 프로그래밍에서 주로 사용되는 언어는 Swift로 다중 상속을 지원하지 않음.Swift에서는 인터페이스(Interface)를 프로토콜(protocol)로 사용하고 있어서 프로토콜이라는 용어와 인
rldd.tistory.com