iOS
protocol - swift / objective-c 차이
@서비
2022. 9. 5. 15:03
1. swift 에서는 optional 정의가 불가 하다.
사용하려면 아래와 같은 식으로 사용해야 한다.
@objc protocol CounterDataSource {
@objc optional func someFunc()
}
2. swift 에서는 protocol의 확장(extension)이 도입되었다.
- 정의: 기존 클래스, 구조체, 열거형 타입에 새로운 Property, Method, Initializer 등을 추가하는 것으로,
원본 타입(소스 코드)에 접근하지 못하는 타입들도 확장해서 사용할 수 있다.
extension CGPoint {
func printPoint() {
print("x: \(self.x), y: \(self.y)")
}
}
let point: CGPoint = .init(x: 10, y: 20)
point.printPoint()
extension은 내용이 방대해서 따로 다루는게 나을거 같다. 업데이트 하면 별도 하단 링크 생성 예정