Swift/기초

23. 스위프트 기초 문법[로그인(4) - UX 개선]

UDDT 2025. 1. 30. 18:41

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

 

 

 코드 개선하기

  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)

// 옵셔널 바인딩으로 코드 변경
let id = idField.text! 

guard let id = idFiled.text, !id.isEmpty else {
	showAlert(message: "계정을 입력하세요")
	return
}

 

  2. 중복되는 코드 삭제

 

 비밀번호에 *로 마스킹하기

  1. Text Label 선택 후 inspector 창에서 Secure Text Entry 설정

 

글씨 지워주는 버튼 추가하기

  1. Text Label 선택 후 inspector 창에서 Clear Button  추가

 

 Placeholder 추가하기

  1. inspector 창에서 Placeholder에 텍스트 작성 가능

 

 화면이 표시되고 바로 입력 받기

  1. 코드 추가

override func viewDidAppear(_ animated: Bool) {
	super.viewDidAppear(animated)
	idField.becomeFirstResponder()
}

 

 기본 키보드 종류 바꾸기

  1. Text Label 선택 후 inspector 창에서 Keyboard Type을 E-mail Address로 변경

 

 자동 추출 옵셔널(Implicitly Unwrapped Optional, IUO)

  1. IUO 문법

let a: Int? = 0          // Optional Type
let b: Int! = 0          // IUO Type

let c: Int = a              // 컴파일 에러 발생함
let d: Int = b              // 컴파일 에러 발생하지 않음
// 강제추출된 Int는 Int에 저장할 수 있지만, Optional Int는 Int type에 저장할 수 없음


/*
공통점 :
1. Wrapping 되어 있는 방식
2. 출력되는 결과
3. 값을 Unwrapping 하는 방법
4. nil일때 강제추출하면 crash 발생
5. 안전하게 추출하고 싶을 때 optionalbinding 사용

차이점 :
IUO는 자동으로 추출되는 Optional이므로,
non-optional Type으로 저장하거나 자동으로 Unwrapping됨.
(편리한 대신, 남용할 수 없음. 값을 nil로 바꾸면 crash가 발생함. 따라서 IUO는 되도록 쓰지 않음)
*/