강제 언래핑
- !기호 사용
- nil 여부와 관계 없이 언래핑 시도
- 타입 선언이나 옵셔널 체인에 사용
- nil 이면 에러
- nil이 아니면 언래핑
- 옵셔널 객체 반환 - Int? 타입 객체 반환
let intVal1 = Int("1")
let intVal2 = Int("1")!
- 강제 언래핑 사용 사례
- 객체 생성(Failable Initializer)
- 메소드 호출, 프로퍼티 접근
- 옵셔널 체인
- 강제 언래핑 사용 예
- 딕셔너리 원소 적근 - 언래핑 성공
let dictionary = ["one":1, "two":2] //dictionary에 있는 키를 사용
let two = dictionary["two"]! // 출력 값 optional 2
//실패 -> 없는 키 사용
let three = dictionary["three"]!
- 강제 언래핑과 옵셔널 체인
- 옵셔널 체인에 강제 언래핑 사용
- 언래핑 실패 시 런타임 에러
import Cocoa
var optinalStr : String? = "ABC" // 값 ABC
let str = optinalStr!.lowercased() // 값 abc
암시적 언래핑 옵셔널
- Implicitly Unwrapping Optinal, IUO
- 타입 선언 뒤에!
- nil 다루기 가능
- nil로 자동 초기화
- 자동으로 언래핑
import Cocoa
var iuoVal : Int! = 123
iuoVal = nil //nil 로 초기화
// ?,! 기호 없이 직접 사용 가능
let iuoStr : String! = "Hello,Swift"
iuoStr.lowercased() //출력 : hello,swift
//nil 인 경우 런타인 에러
let iuoStr : String! = "Hello,Swift"
iuoStr = nil //Cannot assign to value: 'iuoStr' is a 'let' constant
iuoStr.lowercased()