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에 구현된 코드를 호출
}
(참고)
'apple > iOS, UIKit, Documentation' 카테고리의 다른 글
Showing All Messages Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport (0) | 2022.02.18 |
---|---|
[iOS] TTGTagCollectionView에 대해서 알아보자. (0) | 2022.02.17 |
iOS Starscream 총정리 (0) | 2022.01.12 |
iOS Snapkit 나만의 정리 모음 (5) | 2021.08.25 |
iOS Snapkit 10 | CollectionView 코드로 구성하는 법 03 (0) | 2021.08.23 |