Notice
Recent Posts
Recent Comments
Link
大器晩成
[프로토콜] 선택적 프로토콜 요구사항(Optional Protocol Requirements) 본문
[어트리뷰트 키워드]
ex. @available, @objc, @escaping 등
어트리뷰트는 컴파일러에게 알려주는 신호이자, 추가적인 정보를 제공합니다.
- 선언에 대한 추가정보 제공
- 타입에 대한 추가정보 제공
https://bbiguduk.gitbook.io/swift/language-reference/attributes
속성 (Attributes) | Swift
bbiguduk.gitbook.io
//Test 클래스는 iOS 10.0 버전 이상에서만 읽을 수 있음
// 1. 선언데 대한 추가 정보 제공
@available(iOS 10.0, *)
class Test {
}
// 2. 타입에 대한 추가 정보 제공
func test(completionHanlder: @escaping() -> ()) {
}
@objc protocol Bird {
@objc optional var gender: Bool {get set}
@objc optional func fly()
func sit()
}
class Eagle: Bird {
func sit() {
}
}
- @objc는 스위프트로 작성한 코드를 오브젝티브 C 코드에서도 사용할 수 있게 해주는 어트리뷰트입니다.
- 프로토콜에서 요구사항 구현시, 선택적인 요구사항이라면 프로토콜 앞에는 @obc를 추가해야 합니다.
- 멤버 앞에는 @obc optional을 모두 추가해야 합니다.
- 오브젝티브 C에 해당하는 클래스 전용 프로토콜로 구조체 및 열거형은 사용이 불가능합니다.
(오브젝티브 C는 구조체와 열거형에서 프로토콜 채택을 지원하지 않습니다.
728x90
'iOS > Swift 문법' 카테고리의 다른 글
중첩된 타입 (Nested Types) (0) | 2025.02.24 |
---|---|
[프로토콜] 프로토콜의 확장 (Protocol Extensions) (0) | 2025.02.18 |
[프로토콜] 프로토콜의 다중 상속 (0) | 2025.02.18 |
[프로토콜] - 타입으로서 프로토콜 (Protocols as Types) (0) | 2025.02.09 |
[프로토콜] - 서브스크립트 (0) | 2025.02.06 |