Notice
Recent Posts
Recent Comments
Link
大器晩成
타입캐스팅 (as, type cast operator) 본문
타입 캐스팅은 캐스팅 전 타입과 캐스팅 후 타입의 상위/하위 관계에 따라 업 캐스팅과 다운 캐스팅으로 나누어진다.
업캐스팅(Up Casting) | 다운 캐스팅(Down Casting) |
|
|
업 캐스팅
// 객체 as 변환할 타입
다운 캐스팅
// 객체 as? 변환할 타입(결과는 옵셔널 타입)
// 객체 as! 변환할 타입(결과는 일반 타입)
- 타입 캐스팅을 위한 연산자는 as입니다. 캐스팅할 객체 뒤에 연산자를 붙이고, 이어서 변환할 대상 타입을 작성합니다.
class Person {
var name = ""
var age = 10
}
class Student: Person {
var id = 1
}
class Undergraduate: Student {
var major = "전자공학"
}
let person: Person = Undergraduate()
[Undergraduate]
//- name
//- age
//- id
//- major
if let test = person as? Undergraduate {
print(test.id)
} else {
print("error")
}
let person1: Person = Person()
let p = person1 as? Undergraduate
print(p) // nil
- let person: Person = Undergraduate() -> 메모리공간에는 Undergraduate의 프로퍼티가 다 저장되어 있지만, 실제 보이는 것은 Person 타입만큼만 보여 name, age 프로퍼티만 접근할 수 있습니다.
Bridging(브릿징) -> 서로 호환되는 형식을 캐스팅에서 쉽게 사용하는 것
let str = "TEST"
let otherStr = str as NSString
728x90
'iOS > Swift 문법' 카테고리의 다른 글
Any, AnyObject (0) | 2024.12.19 |
---|---|
타입과 다형성 (0) | 2024.12.19 |
타입캐스팅(Type Casting) (0) | 2024.12.19 |
구조체/클래스의 생성자/소멸자 비교 (0) | 2024.12.06 |
초기화 해제 (소멸자, Deinitializer) (0) | 2024.12.06 |