본문 바로가기
iOS

[31일차] @IBAction과 @IBOutlet은 무엇인가?

by 디지털노마더 2020. 9. 4.

iOS 개발을 진행하다 보면, @IBAction, @IBOutlet 용어를 자주 접하게 된다.

처음에는 앱 개발과정에서 특정한 버튼을 추가 및 기능을 연결할 때 추가해야 되는 순서처럼 느꼈다.

 

이번 기회에 IBAction과 IBOutlet의 역할과 정의가 무엇인지 정리해보고자 한다.

참고로 etist블로그님의 글을 참고하였다.

 

* IBAction, IBOutlet의 역할

@IBAction, @IBOutlet은 StoryBoard과 연결고리 역할을 수행한다. 즉, 사용자가 추가한 컴포넌트(버튼, 레이블)와 연결이 가능하다.

 

- IBAction : 이벤트가 일어난 경우, 호출되는 Action을 정의한 것

- IBOutlet : 컴포넌트에 접근하기 위한 변수

 

* IBAction, IBOutlet의 정의

IB : Interface Builder의 약자

IBAction은 입력이 들어왔을때 어떤 행동을 할 지를 나타내고 IBOutlet은 데이터를 가져오는 것이다.

즉, IBAction은 Interface Builder를 통해 받아온 정보로 Action을 수행하겠다는 의미.

 

출처 : etist블로그

* 그럼! 은 무슨 의미지?

Swift의 변수 뒤에는 ! 또는 ? 의 기호가 올 수 있다. 이를 Optional 이라고 한다. 이름 그대로 붙여도 되고 안 붙여도 되는 선택사항이다.

이 Symbol을 변수 뒤에 붙여주면 Nil ( 다른 언어에서는 보통 Null ) 값이 들어갈 수 있는지 없는지를 미리 결정해줄 수 있다.

 

예를 들어

var message1: String = "Hello, World!" // ok
var message2: String? // ok
var message3: String // error 발생 (Nil값이 허용되지 않음)

 

 ! 은 개발자가 이 변수에는 Nil 값이 들어갈 리가 없다고 확신한다! 할 때 사용해주면 되는 Optional Symbol이다.

 그에 반해 ?는 여기에 Nil 값이 포함될 수 있다는 의미로 사용하면 된다고 본다.

 

댓글