본문 바로가기
Swift/기초

22. 스위프트 기초 문법[계산기(6) - 경고창, 함수]

by UDDT 2025. 1. 30.

Swift/기초 카테고리에 업로드한 모든 내용은 KxCoding 기초 강의를 토대로 작성하였습니다.

 

 

 

 경고창 표시하기

  1. 경고창 이름, 확인 버튼 만들기

let alert = UIAlertController(title: "알림", message: "값을 입력해주세요", preferredStlye: .alert)

let okAction = UIAlertAction(title: "확인", style: .default)
alert.addAction(okAction)

present(alert, animated: true)    // animated를 false로 하면 애니메이션이 없이 부자연스럽게 전시됨.

 

  2. 위에서 만든 코드 secondOperandFiled에도 붙여넣기

 

  3. op에도 붙여넣은 뒤, message를 "연산자를 선택해주세요"로 수정

  * 연산자를 선택하지 않았는데 경고창이 표시되지 않음 (기존에 입력한 ?가 있기 때문에 op의 값이 nil이 되지 않음)

 

  4. 오류 수정 방법

  * 지금 작성한 코드는 경고창을 표시하는 코드가 너무 많이 중복되어 들어가 있음

 

 함수

  1. 함수 문법

func name(parameters) -> ReturnType {
	statements
}

/*
name : 함수 이름(lowerCamelCase)
parameters : 파라미터(개수 제한 없음. 단 가독성을 위해 10개 이하로 사용, 파라미터가 없다면 빈 괄호로 작성 가능)
ReturnType : Int, String과 같은 타입(결과를 표현하지 않을 때는 리턴 화살표와 리턴 타입을 생략해도 됨)
*/

 

  2. 함수 구현하기

func sayHello() {
	print("Hello")
}

sayHello()         // 함수를 호출하는 것
Hello

func sayHello(name: String) {              // 파라미터를 선언할 때도 문법을 사용함 (이름: 타입)
	print("Hello, \(name)")                  
}
sayHello(name: "호랑이")            // 여기서의 name은 Argument Label
Hello, 호랑이

func add(a: Int, b: Int) {
	print(a + b)              // Formal Parameter(Parameter)
}

add(a: 1, b: 2)           // Actual Parameter(Argument, 인자)            
// a와 b는 Argument Label (함수를 호출할 때는 Argument Label을 반드시 써야함)
3

  * 스위프트는 문장처럼 읽히는 것을 선호함

// with, in, on, at (Argument Label에서 자주 사용하는 것)
func sayHello(with name: String) {      // 앞의 with는 Argument Label, 뒤의 name이 파라미터 이름
	print("Hello, \(name)")       // * print 함수의 첫번째 파라미터에는 왜 Argument Label이 없을까?
}
sayHello(with: "호랑이")           //  여기서 호출할때는 Argument Label인 with를 써야함

  * Argument Label을 생략할 수 있음

func sayHello(_ name: String) {                             
	print("Hello, \(name)")                                           
}
sayHello("호랑이")       
// 만약 Argument Label을 생략했다면 호출할 때도 Argument Label을 지워줘야함

 

  3. 함수는 선언한 위치에 따라 부르는 명칭이 다름

/*
class는 Type으로 분류,
Type 안에 있는 함수는 Method라고 부름.
*/

class ViewController: UIViewController {
	@IBOutlet weak var firstOperandField: UITextField!
	@IBOutlet weak var secondOperandField: UITextField!
	@IBAction func selectOperator(_ sender: Any) {            // 함수가 아니라 Method
}

 

 함수를 사용하여 경고창 코드 개선하기

  1. 함수 선언

func showAlert(message: String) {
	let alert = UIAlertController(title: "알림", message: message, preferredStyle: .alert)
	let okAction = UIAlertAction(title: "확인", style: .default)
	alert.addAction(okAction)
	present(alert, animated: true)
}

 

  2. 선언한 함수 사용하기

최근댓글

최근글

skin by © 2024 ttuttak