[TIL] Swift 문법 옵셔널 체이닝(Optional Chaining)
·
기타/Today I Learned
옵셔널 체이닝(Optional Chaining) 언래핑 없이 옵셔널 값의 멤버에 접근 현재 Nil일 수 있는 옵셔널인 프로퍼티, 메서드, 서브스크립트를 조회하고 호출하기 위한 프로세스 옵셔널에 값이 포함되어 있으며 프로퍼티,메서드,서브스크립트는 호출에 성공 옵셔널이 nil 이면 프로퍼티,메서드,서브스크립트 호출은 nil을 반환 여러 조회는 함꼐 연결될 수 있고 체인에 어느 부분이라도 nil이면 전체 체인은 실패 강제 언래핑 대안으로 옵셔널 체이닝(Optional Chaining as an Alternative to Forced Unwrapping) 프로퍼티,메서드,서브스크립트를 호출하려는 옵셔널 값 뒤에 물음표(?)를 배치하여 옵셔널 체이닝을 지정,값에 강제 언래핑을 하기 위해 옵셔널 값 뒤에 느낌표(!..
[TIL] Swift 문법 초기화(Initializer) - 2
·
기타/Today I Learned
클래스 타입에 대한 초기화 구문위임(Initializer Delegation for Class Types) 지정된 초기화 구문과 편의 초기화 구문 사이의 관계를 단순화 하기위해 Swift는 초기화 사이의 위임 호출에 대한 3가지 규칙 적용 지정된 초기화 구문은 상위 클래스로부터 지정된 초기화 구문을 호출 편의 초기화 구문은 같은 클래스로부터 다른 초기화 구문을 호출 편의 초기화 구문은 궁극적으로 지정된 초기화 구문을 호출 지정 초기화 구문은 항상 위로 위임 편의 초기화 구문은 항상 옆으로 위임 2단계 초기화(Two-Phase Initialization) Swift에서 클래스 초기화는 2단계 프로세스, 첫번째 단계에서 각 저장된 프로퍼티가 해당 프로퍼티를 도입한 클래스에 의해 초기값이 할당 저장된 프로퍼티..
[TIL] Swift 문법 초기화(Initialization) - 1
·
기타/Today I Learned
초기화 클래스, 구조체, 열거형 인스턴스를 사용하기 위해 준비 작업을 하는 단계 각 저장 프로퍼티의 초기 값을 설정 초기화 과정은 initializer를 정의 하는 것으로 구현 Swift initializer는 값을 반환 ❌ 초기화와 반대로 여러 값과 자원의 해지를 위해 deinitializer도 사용 저장 프로퍼티를 위한 초기값 설정(Setting initial Values for Stored Properties) 인스턴스의 저장 프로퍼티는 사용하기 전에 반드시 특정 값으로 초기화 기본값으로 설정할 수 있고, 특정 값을 설정할 수도 있음 initializer에서 저장 프로퍼티에 값을 직접 설정하면 프로퍼티 옵저버가 호출되지 않고 값 할당이 수행 이니셜라이저 (Initializers) 이니셜라이저는 특정..
[TIL] Swift 문법 상속(Inheritance)
·
기타/Today I Learned
상속(Inheritance) class는 메소드, 프로퍼티와 다른 특징을 다른 클래스로 부터 상속할 수 있음 Swift에서 클래스가 다른 타입과 구분되는 근본적인 요소 저장된 프로퍼티, 계산된 프로퍼티 상관없이 상속받은 프로퍼티에 프로퍼티 옵저버를 설정하여 값 설정에 반응 기반 클래스 정의 (Defining a Base Class) 다른 어떤 클래스로부터 상속받지 않은 클래스를 기반 클래스라고 함 class Bulmang { var age = 25 var description: String { return "bulmang's age is \\(age)" } func developApp() { } } print("Bulmang: \\(Bulmang.age)") // Bulmang: bulmang's age..
[TIL] Swift 문법(Subscripts)
·
기타/Today I Learned
서브스크립트(Subscripts) Class,Struct,enum 스크립트를 정의해 사용, 콜렉션,리스트, 시퀀스등(서브스크립트) 집합의 특정 멤버 엘리먼트에 간단하게 접근할 수 있음 서브 스크립트를 이용한다면 추가적인 메소드 없이 특정 값을 할당할거나 가져올 수 있음 예시 배열 인스터스의 특정 엘리먼트는 someArray[index]문법 Dictionary instance의 특정 엘리먼트는 someDictionary[key]로 접근할 수 있음 하나의 타입에 여러 서브스크립트로 정의 할 수 있고 Overload도 가능 var myArray = [1, 2, 3, 4, 5] // 서브스크립트를 사용하여 인덱스 0의 값을 가져옴 let firstElement = myArray[0] // 1 // 서브스크립트를..
[TIL] Swift 문법 메소드(Methods)
·
기타/Today I Learned
메소드(Methods) 특정 타입의 Class, Struct, enum과 관련된 함수 특저 타입의 인스턴스에서 실행할 수 있는 메소드를 인스턴스 메소드, 특정 형과 관련된 메소드를 타입 메소드 인스턴스 메소드(Instance Methods) 특정 Class,Struct,enum (OOP)의 인스턴스에 속한 메소드 인스턴스 내의 값을 제어하거나 변경할 수 있음 // Counter클래스를 선언하고 인스턴스 메소드로 각각 increment(), increment(by amount: Int),reset()를 //정의해 인스턴스 내의 countproperty를 변경하는 기능을 수행 class Counter { var count = 0 func increment() { count += 1 } func increme..