티스토리 뷰
안녕하세요. 도미닉입니다.
오늘은 어트리뷰트 키워드(Attribute keyword)에 대해서 알아보겠습니다.
어트리뷰트 키워드란?
@와 이름를 붙여서 컴파일러에게 추가적인 정보를 제공하는 키워드입니다.
어트리뷰트 키워드는 크게 두 종류로 나뉩니다.
1. 선언에 추가 정보 제공
클래스나 함수의 선언 위에 줄에 @와 이름을 적어서 컴파일러에 정보를 제공합니다.
@available 키워드를 통해 MyClass의 선언에 추가적인 정보를 제공합니다.
2. 타입에 추가 정보 제공
두번째로는 타입에 추가 정보를 제공할 수 있습니다.
@escaping 키워드를 통해 () -> () 타입에 추가적인 정보를 제공합니다.
이러한 키워드를 통해 컴파일러는 해당 선언과 타입에 대한 추가적인 정보를 제공받아서 컴파일합니다.
어트리뷰트 키워드의 몇가지 예는?
@discardableResult 키워드
리턴 값이 있는 함수를 호출할 때 리턴 값을 사용하지 않을 경우에 발생하는 경고를 숨겨줍니다.
함수의 리턴 값이 있을 때 그 리턴 값을 사용하지 않는다면 아래와 같이 경고가 보여집니다.
아래와 같이 함수 선언 시 @discardableResult 를 붙여줍니다.
경고가 사라집니다.
@unknown 키워드
열거형의 케이스가 늘어났을 경우 새로 생긴 케이스가 switch 문에 default 를 자동으로 실행하지 않도록 사용합니다.
default 앞에 @unknown 키워드를 붙이면 모든 케이스가 작성되지 않으면 경고를 표시합니다.
이런 식으로 동네를 열거형으로 만들고 default 에 남산을 작성할 수 있습니다.
동네에 뚝섬이 추가되었을 때 뚝섬도 switch 문에서 default 로 빠져서 "남산"이 출력될 것입니다.
이 때 default 앞에 @unknown 키워드를 붙이게 되면 모든 케이스를 작성하지 않으면 경고를 표시합니다.
아래와 같이 모든 케이스를 작성하면 경고가 사라지는 것을 볼 수 있습니다.
@IBOutlet, @IBAction 키워드
UIKit 을 사용하면 무조건 보게 되는 키워드죠.
outlet 은 배출구라는 의미입니다.
IBOutlet은 우리가 코드에서 만든 뷰를 화면에 배출하는 것으로 이해합니다.
반면에 action 은 화면에서 버튼 등을 눌렀을 때의 동작을 코드로 전달해 액션을 실행합니다.
정리
오늘은 어트리뷰트 키워드가 무엇인지와 2가지의 어트리뷰트 키워드의 예를 살펴봤습니다.
공부에 도움이 되었으면 합니다.
읽어주셔서 감사합니다
참고
https://clamp-coding.tistory.com/356
[Swift]. @어트리뷰트 키워드와 다양한 키워드들
어트리뷰트 키워드 컴파일러에게 추가적인 정보를 제공하는 키워드 @available, @objc, @escaping, @IBOutlet, @IBAction, @discardableResult ... 1. 선언에 추가적인 정보를 제공 @available(iOS 11.0, macOS 10.12, *) class MyCl
clamp-coding.tistory.com
[iOS] Swift Attributes를 배워보자
docs.swift.org/swift-book/ReferenceManual/Attributes.htmlAttributes — The Swift Programming Language (Swift 5.3)Attributes There are two kinds of attributes in Swift—those that apply to declarations and those that apply to types. An attribute provides
lidium.tistory.com
'IT > Swift' 카테고리의 다른 글
[Swift] 아규먼트 레이블(Argument Label) (0) | 2025.03.11 |
---|---|
SwiftUI 에 NSInternalInconsistencyException 오류 해결 방법 - Attempted to scroll the collection view to an out-of-bounds item (0) when there are only 0 items in section 0. (0) | 2023.05.18 |
Swift 에서 구조체 모델을 UserDefaults (내부 DB)에 저장하는 방법 (0) | 2023.03.20 |
SwiftUI 에서 삼각형을 그리는 방법(역삼각형, 말풍선 포함) (0) | 2022.11.03 |
스위프트 이니셜라이저(초기화) (0) | 2021.06.17 |
- Total
- Today
- Yesterday
- Apple
- 반복문
- MySQL
- 뇌를 자극하는 C 프로그래밍
- 프로그래밍
- 배열
- 스위프트
- 형용사
- 테라스캔
- 포인터
- terascan
- C
- 애플
- 매트랩
- 프로그램
- Matlab
- 리눅스
- 시원스쿨
- exercise
- 단어
- 뇌를 자극하는 C프로그래밍
- 연습문제
- database
- 왕초보 영단어1
- IOS
- 영어
- Swift
- Xcode
- 데이터베이스
- 함수
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |