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는 되도록 쓰지 않음)
*/