Swift 문법 - 2
<Xcode를 이용한 간단한 앱 제작>
1. 디자인
1.1. label의 속성 지정
2. class
2.1. class와 연결
3. 단축키
- 컨트롤 + 커맨드 + 알트 + 엔터: Assistant Editor on/off
- 커맨드 + r: 실행
<문법>
1. optional
- optional type: 변수 또는 상수에 아무런 값이 할당되지 않는 상황을 안전하게 처리하기 위한 방법, 일반 옵셔널 변수에는 ?를 붙여 사용
- Implicitly Unwrapped Optional: 값을 갖는 등의 이유로 옵셔널로 사용되지 않을 경우 자동 언래핑, 변수 선언부에 !를 붙여 사용
- forced unwrapping: 변수 대입 시 !을 기입 후 강제적으로 옵셔널을 해제하며, 해당 변수의 값이 nil일 경우 오류가 발생
*예시 코드
var x : Int? //옵셔널 정수형 변수 x 선언
var y : Int = 0
x = 10
print(x) // Optional(10)
print(x!) // forced unwrapping해서 10이 나옴
print(y)
x = x! + 2
y = x!
- optional binding: 옵셔널에 할당된 값을 임시 변수 또는 상수에 할당하여 강제 언래핑하는 방법으로, 변수의 값이 nil이면 할당하지 않아 오류가 생기지 않음
*예시 코드
var x : Int?
x = 10
if let xx = x { //옵셔널 변수 x가 값(10)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
print(x,xx)
}
else {
print("nil")
}
var pet1: String?
var pet2: String?
pet1 = "cat"
pet2 = "dog"
if let pet1, let pet2 {//다중 optional binding 및 short form 사용
print(pet1, pet2)
} else {
print("nil")
}
*guard-let을 사용한 예시 코드
- Nil-Coalescing Operator: 옵셔널 변수가 nil일 경우 할당하는 default 값 지정
*예시 코드
let defaultColor = "black"
var userDefinedColor: String? // defaults to nil
var myColor = userDefinedColor ?? defaultColor //??: nil-coalecing opertator
print(myColor) //black
userDefinedColor = "red"
myColor = userDefinedColor ?? defaultColor
//nil이 아니므로 원래 값인 red가 할당됨
print(myColor)
2. 함수
- argument label: 함수의 외부 변수 이름으로 정의 시 사용.
- argumet label의 일반적인 명명 규칙
(1) 첫 매개변수는 _를 사용하여 생략한다.
(2) 두번째 매개변수는 with를 보통 사용한다.
- parameter name: 함수의 내부 변수 이름, 호출 시 사용
*예시 코드
func add(first x: Int, second y: Int) -> Int {
return(x+y)
}
add(first:10, second:20)
3. 그 외 Swift 특이 문법들
- if, for 제어문 중괄호 필수
- condition-list(조건나열) 사용
- switch-case문 break 내장
- switch case 내에 실행 문장 필수
*참고자료: iOS 프로그래밍 실무 - 한성현 교수님