타입

    Swift 익스텐션 (Extensions)

    Swift 익스텐션 (Extensions)

    익스텐션을 이용해 클래스, 구조체, 열거형, 프로토콜 등 모든 타입에 기능을 추가할 수 있습니다. 심지어 원본 코드를 몰라도 타입만 알고있다면 기능을 확장할 수 있습니다. 참고로, 기능은 추가가 가능해도 override는 불가합니다! 익스텐션을 이용해 가능한 기능들은 다음과 같습니다. 계산된 인스턴스/타입 프로퍼티의 추가 인스턴스/타입 메소드 추가 새로운 이니셜라이저 제공 서브스크립트 정의 중첩타입의 선언과 사용 특정 프로토콜을 따르는 다입 만들기 추가로, 익스텐션은 외부 라이브러리나 프레임워크에 대해도 사용할 수 있습니다. 특히, 프로토콜과 함께 사용한다면 굉장히 강력한! 기능이라고 하니 이는 나중에 또 공부해서 포스팅 해보도록 하겠습니다. 정의 extension TypeName { //구현부 } //..

    Swift 타입캐스팅 (형변환)

    Swift 타입캐스팅 (형변환)

    Swift의 타입캐스팅은 인스턴스의 타입을 확인거나 클래스의 인스턴스를 부모 또는 자식클래스의 타입으로 사용할 수있는지 확인하는 용도로 사용합니다. is 또는 as를 사용합니다. 그림으로 간단히 설명해보겠습니다. Person - Study - Programming 순으로 부모-자식클래스라고 생각해봅시다. Programming 클래스는 Psrson클래스의 자식 클래스인 Study의 자식클래스입니다. Person을 상속한 Study를 상속했으니, 당연히 Person의 모든 프로퍼티가 있습니다. 따라서 true입니다 반대로 Person은 Programming의 모든 프로퍼티를 갖고 있지 않아서 Person클래스는 Programming으로 사용이 불가능합니다. 반대로 Person은 Programming의 모든 ..

    Swift 프로퍼티 타입들

    Swift 프로퍼티 타입들

    프로퍼티는 속성이라고도 불린다. 객체의 일부로, 이름과 값 사이의 연결을 의미힌다. 즉, 프로퍼티는 객체를 구성하는 블록(내부의 속성)들이다. 프로퍼티의 종류는 5가지로 나눌 수 있다. 인스턴스 저장 프로퍼티 타입 저장 프로퍼티 인스턴스 연산 프로퍼티 타입 연산 프로퍼티 지연 저장 프로퍼티 저장 프로퍼티 저장 프로퍼티는 단순히 값을 저장하고 있는 프로퍼티 입니다. let 키워드로 불변, var 키워드로 가변 프로퍼티를 만들 수 있습니다. struct Coordinate{ //불변 프로퍼티로 선언 후 변경 불가 let x: Int //가변 프로퍼티로 값 변경이 자유로움 var t: Int } var pointA = Coordinate(x: 0, y: 4) pointA.x = 2 //error 불변 프로퍼티..