기술/iOS
-
Swift 5.6 Concurrency기술/iOS 2022. 3. 20. 17:53
Concurrency Defining and Calling Asynchronous Functions 비동기 함수 또는 비동기 메서드는 실행 도중에 일시적으로 중단될 수 있는 특수한 함수 또는 메서드 입니다. 이것은 완료될 때까지 실행되거나 오류가 발생하거나 반환되지 안흔ㄴ 한 일반적 동기 함수 또는 메서드와 대조도비니다. 비동기 함수 또는 메서드는 이 세가지 중 하나를 수행하지만 무언가를 기다리고 있을 때 중간에 일시 중지될 수 있습니다. 비동기 함수 또는 메서드의 바디 내에서 실행을 일시 중지할 수 있는 부분을 표시합니다. 함수 또는 메서드가 비동기 임을 나타내려면 던지는 async 키워드를 작성합니다. 비동기 메서드를 호출할 때 해당 메서드가 반환될 때까지 실행이 일시 중단됩니다. 중단될 가능성이 있..
-
Swift 5.6 Error Handling기술/iOS 2022. 3. 20. 17:53
Error Handling Representing and Throwing Errors Swift 에서는 Error 프로토콜에 준수하는 타입의 값으로 표현됩니다. 이 빈 프로토콜은 에러를 처리하는 것에 대해 사용될 수 있음을 나타냅니다. Swift 열거형은 관련된 에러 조건의 그룹을 모델링하는데 특히 적합하며 관련값들을 사용하여 에러의 특성에 대한 추가 정보를 전달할 수 있습니다. Handling Errors Swift 에서는 에러를 처리하는 4가지 방법이 있습니다. 함수에서 해당 함수를 호출하는 코드로 에러를 전파하거나, do-catch 문을 사용하거나 옵셔널 값으로 에러를 처리ㅏㅎ거나 에러가 발생하지 않을것이라 주장할 수 있습니다. Propagating Errors Using Throwing Funct..
-
Swift 5.6 Optional Chaining기술/iOS 2022. 3. 20. 17:52
Optional Chaining Optional Chaining as an Alternative to Forced Unwrapping 옵셔널이 nil 이 아닌 경우 프로퍼티, 메서드 또는 서브 스크립트를 호출하려는 옵셔널 값 뒤에 물음표를 배치하여 옵셔널 체이닝을 지정합니다. 이것은 값에 강제 언래핑하기 위해 옵셔널 값게 느낌표를 배치하는 것과 유사합니다. 이것들의 주요 차이점은 옵셔널이 nil 일 때 옵셔널 체이닝은 실패하는 반면 강제 언래핑은 런타임 에러를 트리거 합니다. Defining Model Classes for Optional Chaining 하나 이상의 레벨 깊이인 프로퍼티 메서드 그리고 서브 스크립트를 호출하기 위해 옵셔널 체이닝을 사용할 수 있습니다. 타입 호환되는 복잡한 모델 내 하위..
-
Swift 5.6 Deinitialization기술/iOS 2022. 3. 20. 17:51
Deinitialization How Deinitialization Works Swift 는 더이상 필요하지 않을 때 자원 확보를 위해 자동으로 인스턴스를 할당 해제 합니다. Swift 는 자동 참조 카운팅을 통해 인스턴스를 관리합니다. 일반적으로 인스턴스가 할당 해제 될 때 수동으로 수행할 필요가 없습니다. 그러나 자체 지원으로 작업하는 경우 추가 정리 로직이 필요한 경우가 있습니다. 클래스 초기화 해제는 클래스 당 하나의 초기화 해제 구문만 가지고 있습니다. 이 초기화 해제 구문은 파라미터가 없고 소괄호 없이 작성됩니다. 초기화 해제 구문은 인슽턴스가 할당 해제 되기 직전 자동으로 호출됩니다. 초기화 해제 구문을 직접 호출할 수는 없습니다. 상위 클래스 초기화 해제 구문은 하위 클래스로 상속되고 상위..
-
Swift 5.6 Initialization기술/iOS 2022. 3. 20. 17:51
Initialization Settings Initial Values for Stored Properties 클래스와 구조체는 해당 클래스 또는 구조체의 인스턴스가 생성될 때까지 모든 저장된 프로퍼티에 적절한 초기값을 반드시 설정해야합니다. 저장된 프로퍼티는 확정되지 않은 상태로 남아있을 수 없습니다. 추기화 구문 내에서 저장된 프로퍼티에 초기값을 설정하거나 프로퍼티의 저으이 부분에서 기본 프로퍼티 값을 할당할 수 있습니다. Initializers 초기화 구문은 특정 타입의 새로운 인스턴스를 생성하기 위해 호출됩니다. 가장 간다한 형식으로 초기화 구문은 init 키워드를 작성하여 파라미터가 없는 인스턴스 메서드와 같습니다. init() {} Default Property Values 초기화 구문 내에서 ..
-
Swift 5.6 Inheritance기술/iOS 2022. 3. 20. 17:48
Inheritance Defining a Base Class 다른 클래스에서 상속하지 않은 클래스를 기본 클래스라고 합니다. SubClassing 하위 클래스는 기존 클래스를 기반으로 클래스를 만드는 작업잉ㅂ니다. 하위 클래스는 기존 클래스의 특성을 상속하므로 수정할 수 있습니다. 하위 클래스에 새로운 특성도 추가할 수 있습니다. class SomeSubclass: SomeSuperclass { // subclass definition goes here } Overriding 하위 클래스는 상위 클래스에서 상속할 인스턴스 메서드, 타입 메서드, 인스턴스 프로퍼티, 타입 프로퍼티, 또는 서브스크립트 자체 사용자 구현을 제공할 수 있습니다. 이것을 재정의라고 합니다. 상속될 특성을 재정의하려면 재정의 할 정..
-
Swift 5.6 Subscripts기술/iOS 2022. 3. 20. 17:48
Subscripts Subscript Syntax 서브 스크립트를 사용하면 인스턴스 이름 뒤 대괄호에 하나 이상의 값을 작성하여 타입의 인스턴스를 조회할 수 있습니다. 이 구문은 인스턴스 메서드 구문과 계산된 프로퍼티와 유사합니다. subscript 키워드로 서브스크립트 정의를 작성하고 인스턴스 메서드와 같은 방법으로 하나 이상의 입력 파라미터와 반환 타입을 작성합니다. 인스턴스 메서드와 다르게 서브 스크립트는 읽기-쓰기 또는 읽기 전용이 될 수 있습니다. 이러한 동작은 계산된 프로퍼티와 같은 방법으로 getter 와 setter 를 통해 동작합니다 subscript(index: Int) -> Int { get { // Return an appropriate subscript value here. } s..
-
Swift 5.6 Methods기술/iOS 2022. 3. 20. 17:46
Methods Instane Methods 인스턴스 메서드는 특정 클래스, 구조체, 열거형의 인스턴스에 속하는 함수입니다. 인스턴스 프로퍼티에 접근하고 수정하는 방법을 제공하거나 인스턴스의 목적과 관련된 기능을 제공합니다. The self Property 타입의 모든 인스턴스는 인스턴스 자체와 정확히 일치하는 self 라는 암시적 프로퍼티를 가지고 있습니다. 자체 인스턴스 메서드 내에서 현재 인스턴스를 참조하기 위해 self 프로퍼티를 사용합니다. 실제로 코드에서 self 를 꼭 작성할 필요는 없습니다. self 를 명시적으로 작성하지 않으면 Swift 는 메서드 내에서 이미 알고 있는 프로퍼티 또는 메서드 이름을 사용할 때마다 현재 인스턴스의 프로퍼티 또는 메서드를 참조한다고 가정합니다. 이 규칙의 주..