서브스크립트(Subscript)에 대해 알아 보겠습니다. 서브스크립트 서브스크립트는 Class, Struct, Enum에서 콜렉션, 순열, 리스트 등의 멤버 요소에 쉽게 접근하기 위한 방법입니다. 인스턴스의 이름 뒤에 대괄호로 감싼 값을 써줌으로써 인스턴스 내부의 특정 값에 접근할 수 있습니다. 설정자(Setter)와 접근자(Getter)메서드를 구성하지 않고도 인덱스를 통해 어떤 값을 빠르게 설정하거나 가져올 수 있습니다. 예를들어 arr이라는 Array 인스턴스의 index를 통해 해당 인덱스의 값에 접근하고 싶다면 arr[index]라고 표현해서 쓴것들이 서브스크립트 입니다. Subscript Syntax subscript키워드 사용. 서브스크립트를 구현하는 코드는 각 타입의 구현부 또는 타입의 익..
Swift의 Error Handling에 대해 알아 보겠습니다. Error Handling이란 프로그램 동작 중 예상 가능한 오류가 발생했을 때 이를 감지하고 복구하기 위한 일련의 처리 과정 Exception Handling과 유사하지만 다른 특성들을 지닌 부분이 있어 의도적으로 다른 용어를 사용 먼저 Error란 무엇일까요? Error Swift 에서 정의하는 심각도에 따른 4가지 오류의 유형입니다. 1. simple domain error (단순 도메인 오류) - 명백하게 실패하도록 되어 있는 연산 또는 추측에 의한 실행 등으로 발생 예) 1. 숫자가 아닌 문자로부터 정수를 파싱, 2. 빈 배열에서 어떤 요소를 꺼내는 동작 등 - 오류에 대한 자세한 설명이 필요하지 않으며 대개 쉽게 또 즉시 에러를 ..
타입캐스팅(Type Casing) 타입캐스팅은 해당 인스턴스를 고유한 클래스 계층 구조의 다른 슈퍼클래스나 서브클래스로 처리하는 방법을 뜻합니다. 연산자로는 as, as?, as! 가 존재하고 이들의 개념에 대해 알아보도록 하겠습니다. 다운캐스팅 (Downcasting) -> 부모클래스에서 자식클래스로 형변환하는것을 다운캐스팅이라고합니다. 쉽게말해서 자식클래스의 프로퍼티와 메소드를 사용하기 위해서 다운캐스팅을 하는겁니다. 다운 캐스팅에는 2가지 연산자가 존재한다. as? : 강제 타입 변환 시도. 변환이 성공하면 Optional 값을 가지며, 실패 시에는 nil 반환 as! : 강제 타입 변환 시도. 성공 시 언래핑 된 값을 가지며, 실패 시 런타임 에러 발생 class Shape { var color ..
Swift의 TypeCheck 방법중에 타입을 확인하는 type(of:)와 타입을 비교하는 is에 대해 알아보도록 하겠습니다. 타입 체크(TypeCheck) 스위프트의 타입캐스팅은 is와 as로 구현되어있고, 인스턴스의 타입을 확인하거나 자신을 다른 타입의 인스턴스인것처럼 사용될 수 있습니다. type(of:) - 타입확인 class className {} var anyArray: [Any] = [1, "2", 3.9] var anyObjectArray: [AnyObject] = [className()] func printGeneric(_ value: T) { let types = type(of: value) print("\(value) of type \(types)") } printGeneric(2) ..
Capturing에 대해 알아 보겠습니다. CaptureList 클로저는 정의 된 주변 컨텍스트에서 상수 및 변수를 캡처(Capturing) 할 수 있습니다. 그런 다음 클로저는 상수와 변수를 정의한 원래 범위가 더 이상 존재하지 않더라도 본문 내에서 해당 상수와 변수의 값을 참조하고 수정할 수 있습니다. Value Type Capture var a = 1 var b = 2 var c = 3 var result = 0 // 1,2,3,0 print("초기화 값 :", a, b, c, result) print("a, b 만 캡쳐") let valueCapture = { [a,b] in result = a + b + c print("내부 : ", result) } //1번째 호출 valueCapture() ..