전체 글 130

Type Casting

타입 캐스팅(Type casting)은 인스턴스의 값을 확인하거나 해당 인스턴스를 자체 클래스 계층 구조의 다른 곳에서 다른 상위 클래스 또는 하위 클래스로써 취급하는 방법이다. Swift에서 타입 캐스팅은 is와 as 연산자로 구현된다. 이 두 연산자는 값의 타입을 확인하거나 값을 다른 타입으로 캐스트 하는 간단하고 효과적인 방법을 제공한다. Defining a Class Hierarchy for Type Casting 클래스와 하위 클래스의 계층도와 함께 타입 캐스팅을 사용하여 특정 클래스의 인스턴스의 타입을 확인하고 같은 계층도 내에서 다른 클래스로 인스턴스를 캐스트 할 수 있다. 아래 세 코드는 타입 캐스팅의 예제에서 사용하기 위해 클래스의 계층도와 해당 클래스의 인스턴스를 포함하는 배열을 정의한..

Swift 공식 문서 2024.01.15

Concurrency

Swift는 구조화된 방식으로 비동기(asynchronous)와 병렬(parallel) 코드 작성을 지원한다. 비동기 코드(Asynchronous code) 일시적으로 중단되었다가 다시 실행할 수 있지만 한 번에 프로그램의 한 부분만 실행된다. 프로그램에서 코드를 일시 중단하고 다시 실행하면 UI 업데이트와 같은 짧은 작업을 계속 진행하면서 네트워크를 통해 데이터를 가져오거나 파일을 분석하는 것과 같은 긴 실행 작업을 계속할 수 있다. 병렬 코드(Parallel code) 동시에 코드의 여러 부분이 실행됨을 의미한다. 예를 들어 4 코어 프로세서의 컴퓨터는 각 코어가 하나의 작업을 수행하므로 코드의 4 부분을 동시에 실행할 수 있다. 병렬과 비동기 코드를 사용하는 프로그램은 한 번에 여러 연산을 수행하고..

Swift 공식 문서 2024.01.11

Error Handling

에러 처리(Error Handling)는 프로그램의 에러 조건에서 응답하고 복구하는 프로세스이다. Swift는 런타임 에러가 발생하면 에러를 처리하기 위해 에러의 발생(throwing), 감지(catching), 전파(propagating), 조작(manipulating)을 지원하는 최고 수준의 지원을 제공한다. 일부 작업은 항상 실행을 완료하거나 유용한 출력을 생성하는 것이 보장되지 않는다. 옵셔널을 사용해 에러가 발생해 값이 없다고 nil로 표시할 수 있다. 하지만 어떤 종류의 에러가 발생했는지는 알 수 없다. 이런 경우 구체적으로 어떤 에러가 발생했는지 확인할 수 있어야 경우에 따른 적절한 처리를 할 수 있다. 예를 들어 디스크의 파일에서 데이터를 읽고 처리하는 작업을 생각해 보자 지정된 위치에 파..

Swift 공식 문서 2024.01.08

Optional Chaining

언래핑 없이 옵셔널 값에 접근한다. 옵셔널 체이닝(Optional Chaining)은 현재 nil일 수 있는 옵셔널 프로퍼티, 메서드, 그리고 서브 스크립트를 조회하고 호출하기 위한 프로세스이다. 옵셔널에 값이 포함되어 있으면 프로퍼티, 메서드, 또는 서브 스크립트는 호출에 성공한다. 옵셔널이 nil이면 프로퍼티, 메서드, 또는 서브 스크립트 호출은 nil을 반환한다. 여러 조회는 연결될 수 있고 어느 부분이라도 nil이면 전체 체인은 실패한다. Optional Chaining as an Alternative to Forced Unwrapping 프로퍼티, 메서드, 또는 서브 스크립트를 호출하려는 옵셔널 값 뒤에 물음표(?)를 작성해 옵셔널 체이닝을 지정한다. 값에 강제 언래핑을 하기 위해 옵셔널 값 뒤..

Swift 공식 문서 2024.01.05

Deinitialization

소멸자는 클래스 인스턴스가 할당 해제되기 직전에 호출된다. 소멸자는 deinit 키워드로 작성이 가능하고 클래스 타입에서만 사용 가능하다. How Deinitialization Works Swift는 더 이상 필요하지 않을 때 자원 확보를 위해 인스턴스를 자동으로 할당 해제한다. 자동 참조 카운팅(Automatic Reference Counting)에서 설명되어 있듯이 자동 참조 카운팅(ARC)을 통해 인스턴스의 메모리를 관리한다. 일반적으로 인스턴스가 할당 해제될 때 수동으로 수행할 필요는 없다. 그러나 자체 자원으로 작업하는 경우 추가정리로 직접 수행이 필요한 경우가 있다. 예를 들어 파일을 열고 데이터를 작성하는 클래스를 생성하면 클래스 인스턴스를 할당 해제하기 전에 파일을 닫아야 한다. 클래스 소..

Swift 공식 문서 2024.01.04