교육/Swift

[swift] casting

삶의안식처 2016. 8. 8. 15:19

1. 샘플코드

// casting

class Animal{}

class Dog:Animal{}


class Cat:Animal

{

    func cry() { print("cat cry")}

}

var p : Animal = Cat()


// p 누구인지 조사하기

print(p is Dog)

print(p is Cat)

print(p is Animal)// 항상 true라고  warning


//p.cry() // Animal 없기 때문에 런타임에러


//var p2 =  p as! Cat // 강제 형변환

//var p2 =  p as! Dog // 뒤짐, optional 받자

// as! : 잘못된 타입으로 캐스팅 하면 runtime error

var p2 =  p as? Dog // optional<Dog>

// as? : optional 타입으로 캐스팅


showType(p2)

print(p2)