스위프트에서 뷰에 함수를 지정할 때 @IBAction 혹은 @IBOutlet 이 붙는데, 둘 차이는 명확하다.
@IBOutlet은 객체에 속성을 지정해야할 때 사용하며
@IBAction은 객체에 이벤트를 넣을 때 사용한다.
1. Outlet
예시 함수를 보자.
@IBOutlet var IbHello: UILabel!
해당 함수에서 var IbHello 부분은 변수를 선언하는 부분이다. 코틀린과 마찬가지로 변수를 선언할때 var을 붙이며, IbHello 부분은 변수명이 된다.
UILabe부분은 해당 함수의 변수 타입을 나타낸다.
아웃렛 변수를 선언할 때 다음과 같이 storage도 지정하는데,
해당 부분은 메모리 함수 정책이다. 기본 값은 Strong이다.
Strong의 경우 다른 곳에서 참조하고 있으면 이 값이 메모리에서 제거되지 않는다. 하지만 weak의 경우 다른 곳에서 참조하는 중임에도 시스템이 임의로 값을 삭제할 수 있다. 이는 메모리 이슈때문으로 strong값들이 상호참조하는 경우 메모리 누수가 생기기 때문이다.
2. Action
Action함수 예시는 다음과 같다
@IBAction func btnSend(_ sender: UIButton) {
IbHello.text = "Hello, " + txtName.text!
}
Action의 경우 함수로 선언되기 때문에 func로 값을 선언한다. btnSend는 함수의 이름이다.
(_sender : UIButton )의 경우 이벤트를 보내는 객체를 지정하며, UIButton으로 객체의 클래스를 지정한다.
괄호 내부에 안드로이드의 addEventLister() {} 처럼 {} 내부에 이벤트에 대한 함수를 입력한다.
반응형
'IOS > IOS 스터디(Swift)' 카테고리의 다른 글
ios 기초] 03. imageView, switch (0) | 2022.05.10 |
---|---|
[iOS 오류] PageViewController segue.identifier = nil 오류 해결하기 (0) | 2022.05.06 |
[IOS 오류] There Are No Accounts Registered With Xcode. Add Your Developer Account To Xcode 해결하기. (0) | 2022.05.03 |
ios 기초] 01. 간단한 IOS 앱 만들기(Hello world!) (0) | 2022.04.25 |
0. ios app project 만들기 (0) | 2022.04.25 |