스위프트 코드를 입력하다 보면 변수 선언에 ? 를 볼 수 있는데
이 '?' 를 삭제하면 에러가 발생한다.
Swift에 존재하는 옵셔널이라는 개념은 어떤 값이 존재하지 않는다는 것을 나타날 때 사용한다
변수가 nil(null) 이거나 값의 존재 여부를 알 수 없다는 의미이다
스위프트에서는 변수를 선언할 때 변수에 반드시 nil이 아닌 값을 할당해야 하지만 옵셔널 타입을 사용해서 변수에 값이 없다는 것을 알릴 수 있다.
옵셔널로 선언된 변수에 값이 할당되면 그 값은 '옵셔널에 래핑(wrapped)되었다'고 한다.
이 값은 '!'를 사용하여 강제언래핑(force unwrapping) 하여 값에 접근할 수 있다.
1
2
3
4
5
6
7
8
9
10
|
var test: Int?
test = 3
if test !=nil{
print(test!)
}
|
또한 옵셔널은 암묵적인 언래핑이 되도록 선언이 가능한데 이 때 강제언래핑을 사용하지 않아도 값을 사용할 수 있다.
1
2
3
4
5
6
7
8
9
|
var test2: Int!
test2 = 3
if test2 !=nil{
print(test2)
}
|
- Tip -
Swift4 에서는 #selector()의 인자로 사용될 메서드를 선언할 때 Objective-C와의 호환성을 위하여 함수 앞에 반드시
@objc 키워드를 붙여야 한다.
delegate
델리게이트(delegate)는 대리자라고도 하며 누군가 해야 할 일을 대신 해주는 역할을 한다.
예를 들어 특적 객체 A와의 상호작용을 할 때 메시지를 넘기면 그 메시지에 대한 책임은 델리게이트로 위임된다.
그리고 델리게이트 메서드는 해당 역할을 수행하며 처리 결과나 메시지등을 받는다. 즉, 사용자가 객체를 터치했을 때 해야 할 일을 델리게이트 메서드로 구현하고 해당 객체가 터치되었을 때 델리게이트가 호출되어 위임받는 일을 하게 되는것이다.
Swift 문법 for 루프
for 변수 in Range {
}
EX
for i in 0...9 {
print(i)
}
for i in 0..<10{
print(i)
}
'■ 문법 ■ > Swift' 카테고리의 다른 글
03. Swift와 데이터 타입 (1) | 2021.03.10 |
---|---|
#02. Swift의 명명규칙과 마크업 문법을 활용한 문서화 주석 (0) | 2021.03.05 |
#01. Swift에 대하여 (0) | 2021.03.04 |
03 Swift 익명함수 (0) | 2019.11.29 |
Swift 에러 정리 [최종 업데이트 19.11.28] (0) | 2019.11.28 |
댓글