본문 바로가기
iOS/iOS

as, as?, as!의 차이

by 황민우 2022. 2. 24.

타입 캐스팅 정의

- 타입 캐스팅은 인스턴스의 타입을 확인할 때 사용합니다.

- 해당 인스턴스를 수퍼클래스(상위클래스)나 하위 클래스로 처리(취급)하는 방법입니다.

- 상속 관계가 있는 클래스끼리만 타입 캐스팅이 가능합니다.

- 타입 캐스팅을 사용해 타입이 프로토콜에 적합한지도 알 수 있습니다.


타입 캐스팅

2022.01.26 - [iOS/Swift 문법 심화 학습] - 타입 캐스팅

 

타입캐스팅

정의 타입 캐스팅은 인스턴스의 타입을 확인 하는 "is"연산자와 해당 인스턴스를 수퍼 클래스 또는 하위 클래스로 취급하는 "as" 연산자가 있으며, "as" 연산자는 사용 목적에 따라 업 캐스팅과 다

seagreen83.tistory.com


타입 캐스팅 연산자 [ as, as?, as! 차이점 ]

is - 타입을 체크하는 연산자로, 런타임 시점에 실제 체크가 이루어집니다.
- 표현식이 타입과 동일하거나 서브클래스인 경우 True값을 반환하고, 그 외에 경우엔 False값을 반환합니다.
as - 업 캐스팅에 사용하며, 컴파일 시점에 캐스팅 가능 여부를 결정합니다.
- 업 캐스팅은 항상 성공합니다.
as? - 다운 캐스팅에 사용하며, 런타임에 캐스팅됩니다.
- 다운 캐스팅에 실패할 경우 nil을 리턴합니다.
- 캐스팅에 성공할것이라는 확신이 없을 때, 해당 키워드를 사용할 수 있습니다.
as! - 다운 캐스팅에 사용하며, 런타임에 강제 캐스팅합니다.
- 다운 캐스팅에 실패할 경우 에러가 발생합니다.
- 반드시 캐스팅에 성공할 것이라는 확신이 있을 때, 해당 키워드를 사용할 수 있습니다.

'iOS > iOS' 카테고리의 다른 글

Frame과 Bounds의 차이  (0) 2022.02.25
Class와 Struct의 차이  (0) 2022.02.25
Escaping Closure  (0) 2022.02.23
ARC [ Automatic Reference Counting ]  (0) 2022.02.22
SceneDelegate란?  (0) 2022.02.21

댓글