[Swift] 어트리뷰트 키워드(Attribute keyword)
안녕하세요. 도미닉입니다.
오늘은 어트리뷰트 키워드(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