Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- swift
- EXIF data
- StreamReader
- euc-kr
- 대전 업힐
- 파이썬
- dataset
- Xcode
- kanna html parser
- 자전거
- 달력
- python
- Exif
- insert into
- VBA
- 엑셀
- 대전 자전거
- C#
- 딴지일보 자유게시판 파씽
- 대전
- MDB
- mdb table 합치기
- 스위프트
- exifread
- 노은
- 유성
- swift html parser
- file move
- kanna parser
- html parser
Archives
- Today
- Total
Fly to the sky & Return
옵셔널 (Optional) in Swift 본문
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
1. 옵셔널
Swift가 가지고 있는 가장 큰 특징 중 하나가 바로 옵셔널 Optional 입니다.
값이 있을 수도 있고 없을 수도 있는 상태를 말한다 할수 있습니다.
좀더 자세히 설명한것을 보자면
값을 반환하는 과정에서 오류가 발생할 가능성이 있는 값을 옵셔널 타입이라는 객체로 감싼 후에 반환
2. 옵셔널 타입의 선언과 정의
2.1 자료형 뒤에 ?
1 2 3 4 5 6 7 8 9 10 11 | //옵셔널 정수형 var optionalInt : Int? //옵셔널 문자열 var optionlString : String? //옵셔널 배열 var optionalArr : [String]? //옵셔널 딕셔너리형 var optionalDic : Dictionary<String , String>? var optionalDic1 : [String : String]? //옵셔널 클래스형 var optionalClass : AnyObject? | cs |
3. 옵셔널 강제 해제
3.1 변수뒤에 !
위의 예제를 보면 옵셔널 변수 자체를 사용했을때와 !연사자를 붙였을때의 결과값이 다름을 알수 있습니다.
이와같이 옵셔널을 강제해제하기위해서는 !연산자를 사용합니다.
4. 옵셔널 바인딩
4.1 옵셔널 바인딩은 옵셔널의 값이 존재하는지 검사한뒤 검사하다면 그 값을 변수에 대입시켜 줍니다.
4.2 if let 이나 if var 를 사용
1 2 3 4 | if let email = optionalEmail { print(email) // optionalEmail의 값이 존재한다면 해당 값이 출력됩니다. } // optionalEmail의 값이 존재하지 않는다면 if문을 그냥 지나칩니다. | cs |
4.3 where 키워드를 이용해 조건도 함께 지정할수가 있다.
1 2 3 4 | var optionalAge: Int? = 22 if let age = optionalAge where age >= 20 { // age의 값이 존재하고, 20 이상입니다. }이 존재하지 않는다면 if문을 그냥 지나칩니다. | cs |
5. 옵셔널 체이닝(Optional Chaining)
5.1 옵셔널 체이닝은 옵셔널의 속성에 접근할 때, 옵셔널 바인딩 과정을 ? 키워드로 줄여주는 역할을 합니다
1 2 3 4 5 6 7 8 | let array: [String]? = [] var isEmptyArray = false if let array = array where array.isEmpty { isEmptyArray = true } else { isEmptyArray = false } isEmptyArray | cs |
다음과 같이 표현할수 있습니다.
1 | let isEmptyArray = array?.isEmpty == true | cs |
isEmptyArray는 bool 속성이기에 true 값과 false값을 가질수 있지만 옵셔널 체이닝을 통해 Bool?값을 반환하도록 변경됨
'프로그래밍 > Swift(IOS & Mac)' 카테고리의 다른 글
변수의값을 다른 타입으로 변경하기 (0) | 2016.01.27 |
---|---|
스위프트 2.0의 문법적 특성 (0) | 2016.01.27 |
XCODE 기본적인 사용법.......2 (0) | 2016.01.17 |
XCODE4 기본적인 사용법 알아보기....1 (0) | 2016.01.16 |
UIImagePickerController를 이용한 사진불러오기 (0) | 2016.01.14 |