→ Swift Study

Swift의 do, try, catch 구문은 에러 처리를 위한 구문이다. 보통 아래와 같은 형태를 많이 발견할 수 있다. do { // 예외가 발생할 수 있는 코드를 포함하는 블록 try // 예외가 발생할 수 있는 작업을 호출 } catch { // 예외가 발생했을 때 처리할 코드 } 코드 실습 아래와 같은 코드가 있다고 해보자. fetch 함수는 "Fetched" 를 반환하는 함수이다. 이 함수는 throws 를 통해 에러를 던지는 함수라는 것을 알 수 있다. isActive 를 받아서 false 면 에러를 던진다. enum fetchError: Error { case unknown case network } func fetch(_ isActive: Bool) throws -> String { if..
Swift 를 사용하면서 본인도 모르게 self. 를 많이 사용했을 것이다. self 는 말그대로 나 자신! 이라는 뜻을 가지고 있다. 그렇다면 [weak self] 는 무엇일까? 실습을 통해 아주 간단하게 맛보기만 보려고 한다. 약한참조 간단하게 ARC 에 대해서 설명해 보자면, Swift에서는 ARC(Automatic Reference Counting, 자동 참조 카운팅)를 사용하여 객체의 메모리를 관리한다. 이 참조를 약한 참조(weak)로 만들면 참조 카운트가 증가하지 않는다. ARC 에 의해서 참조 카운팅이 0 이 되었을때 메모리에서 해제가 되는데 강한 참조가 걸려있으면 카운팅이 0 이 되기전까지 해제되지 않는다. 예시코드 기본 구조 아래같이 Navigate 버튼을 누르면 다음뷰로 가고 다음뷰는..
지난 시간 지난 시간에는 GCD 의 종류에 이어서 DispatchGroup, DispatchWorkItem, Semaphore 까지 다양한 방법으로 비동기 작업을 할 수 있는 방법에 대해서 알아보았다. 하지만 이러한 비동기 처리를 하게 되면 발생되는 문제들이 있다. 이번 포스팅에서는 문제들을 역시나 간단하게 알아보려고 한다. (심화과정은 제가 더 공부해야 할 것 같아요) [Swift] GCD/Operation 알아보기 3 - DispatchGroup 지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 Dispat swift-library.tistory.com Thread-..
지난시간 지난시간엔 GCD 종류에 대해서 알아보았다. 메인큐, 글로벌큐, 커스텀큐 이렇게 세종류가 있는데 이러한 것들을 묶을 수 있고, 그 그룹이 끝나는 시점을 알고싶을때 사용하는 것이 DispatchGroup 이다. 아주아주 간단하게 설명할 것이므로 심화학습은 추후 실제 사용해보면서... [Swift] GCD/Operation 알아보기 2 - GCD 종류 지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아 swift-library.tistory.com DispatchGroup 여러 비동기 작업이 완료될 때까지 대기하거나 완료 되었을때..
지난 포스팅 지난 포스팅에서는 동기, 비동기, 직렬, 동시에 대해서 알아보았다. 그리고 iOS 에서는 작업을 분산시킬 때 Queue 라는 대기행렬에 보낸다는 것까지 알게 되었다. [Swift] GCD/Operation 알아보기 1 - 동기, 비동기, 직렬, 동시, 병렬 GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 swift-library.tistory.com 그렇다면 Queue 에는 GCD(Grand Central Dispatch) 와 Operation 두종류가 있는데 먼저 GCD 에 대해서 공부해 보겠다. 그중에서도 GCD 의 종류에 대해..
GCD 에 대해서 제대로 공부해 보고자 한다. 말로만 GCD 많이 들어봤지 실제로는 음... 모른다고 하는 게 맞는 것 같다. 2024년을 맞이하여 (?) 제대로 공부해보려고 한다! 그전에 동기, 비동기 개념을 알아야 하므로 간단하게 동기, 비동기, 직렬, 동시, 병렬에 대해서 간단하게 작성해보려 한다. 간단하게 그림도 그려봤다. (혹시 틀린 부분 있으면 말씀해 주시면 바로 수정하겠습니다!) 동기 (Sync) / 비동기 (Async) 처음에는 동기는 순차적으로 처리하고 비동기는 여러 개 처리하는 거 아닌가? 정도로 알고 있었지만 비슷하지만 다르다. 동기와 비동기의 큰 차이는 작업의 완료와 관련이 있다. 동기 (Synchronous) 작업을 시키고 작업의 완료를 기다린다. 이 때 다른 작업을 실행하지 않는..
Swift에서 클래스를 작업할 때, 객체를 생성하고 초기화하는 과정은 매우 중요하다. Swift는 이니셜라이저를 사용하여 객체를 안전하고 효율적으로 초기화할 수 있는 기능이 있다! 그중에 convenience init에 대해 알아보자.convenience init은 클래스 초기화를 더 간편하게 해주는 특별한 종류의 이니셜라이저이다. 기본 이니셜라이저(designated initializer)를 보조하는 역할을 한다.Swift의 convenience init객체를 생성하고 초기화하는 과정은 매우 중요합니다. 우리는 이니셜라이저를 사용하여 객체를 안전하고 효율적으로 초기화할 수 있다.1. 이니셜라이저(Initializer)란?클래스의 인스턴스가 생성될 때, 그 인스턴스의 모든 프로퍼티에 유효한 초기값을 할당..
Swift librarian
'→ Swift Study' 카테고리의 글 목록