Swift_Type Casting

💀LeeSY·2021년 7월 19일
0

1. Type Casting

  • Type Casting(형 변환) : 스위프트에서 코드를 작성할 때 컴파일러가 어떤 값의 특정 타입을 식별하지 못하는 경우가 발생하는데, 이럴 때 as 키워드를 통해 개발자가 의도하는 값의 타입을 컴파일러가 알 수 있도록 하는 것이다.
	let myValue = record.object(forKey:"comment") as! String
	//object(forKey:) 메소드가 반환하는 값을 String으로 처리해야한다고 컴파일러에게 알림
  • Upcasting : 특정 클래스의 객체가 상위 클래스들 중의 하나로 변형되는 것
    1. as 키워드를 사용하여 수행
    2. 변환이 성공할 것이라고 컴파일러가 알려줄 수 있기 때문에 보장된 변환이라고도 한다.

	let myButton: UIButton = UIButton()
    
	let myControl = myButton as UIControl
	//Upcasting
  • DownCasting : 어떤 클래스에서 다른 클래스로 만드는 변환이 일어날 때 발생
    1. 변환이 안전하게 수행되거나 유효하지 않은 변환 시도를 컴파일러가 잡아낸다는 보장이 없다.
    2. 보통 어떤 클래스에서 그 클래스의 하위 클래스로 변환
    3. as! 키워드로 수행되며, 강제 변환이라고 한다.

	let myTextView = myScrollView as! UITextView
    //Downcasting
  • Optional Binding : Down Casting을 하는 안전한 방법으로서 as? 키워드 사용
	if let myTextView = myScrollView as? UITextView {
		print("Type cast to UITextView succeeded")
    	} else {
        	print("Type cast to UITextView failed")
        }
        //만약 변환이 성공적이라면 지정한 타입의 옵셔널 값 반환
        //오류가 발생한다면 옵셔널 값은 nil

2. Type Check

  • is 키워드를 사용하여 타입 검사를 진행 가능
	if myobject is MyClass {
    		//myobject가 MyClass의 인스턴스인지를 검사
    	}
profile
A little strange but passionate, sincere hard worker.

0개의 댓글