
iOS의 built-in framework 중, Combine이 있습니다. 그 중, Future라는 publisher에 대한 기본적인 사용방법 부터, 제한사항, 주의사항과 이를 해결하는 대안 등에 대해서 알아보겠습니다. 🤔 Combine framework, Future Publisher 란? Future Publisher는 클로져를 통해 일정 작업을 수행하고, 그 콜백을 단일 값으로 방출하고 싶을때 사용할 수 있는 Publisher입니다. 클로져 내에서 원하는 작업을 수행 후, 그 결과값을 방출하거나, 필요시 Error를 던질 수도 있습니다. 만약 failure 케이스가 없다면, Failure 타입을 Never로 지정하면 됩니다. Future Publisher 기본 사용 예시 및 주의사항 1 // fut..

iOS개발을 하면서, Combine framework를 활용할 수 있습니다. Publisher로부터 이벤트를 받고자 구독을 할 때, 실행할 동작을 메인스레드에서 동작하고 싶을때가 있습니다. 대표적으로 UI를 업데이트해야할 때인데요. 그럴때 publisher 구독 과정에서 receive(on:)을 사용해서 메인스레드를 지정할 수 있습니다. 일반적으로 DispatchQueue.main을 생각하실 수 있는데 RunLoop.main도 메인스레드 지정에 사용이 가능합니다. 이전까지는 DispatchQueue를 위주로 사용했다가 Combine 관련 유데미 강의에서 RunLoop.main을 사용하는 것을 보고 사용을 해본 경험이 있었는데요. 과연 이 둘은 완전 똑같은 동작을 수행할까요? 그것은 아니라고 합니다. 오늘..

안녕하세요. 오늘은 가볍게 SwiftUI의 View의 구현부에 명시되어있는 어떤 개념에 대해서 가볍게 보려고 해요. 바로 메인스레드에서의 동작을 보장시켜주는 MainActor에 대해서입니다. Swift Concurrency, MainActor의 개념과 사용방식, MainActor가 사용되는 케이스와 더불어 async await 메서드를 함께 사용하는 몇가지 케이스에서 메인스레드의 동작유무를 보도록 할게요. SwiftUI, View protocol에 정의되어있는 @MainActorView에 대한 구현부에요. 아래 body를 보시면, @MainActor가 정의되어있는데요. @MainActor가 정의되어있는 영역 내의 코드는 메인스레드에서의 동작을 보장해요. 다만 그 안에 부분적으로 DispatchQueue...

SwiftUI에서 부모뷰가 자식뷰의 설정값을 감지할 수 있는 방법 중 하나로, PreferenceKey가 있어요. 오늘은 PreferenceKey protocol에 대한 개요와 함께 실제 사용 예시를 알아보도록 하겠습니다. iOS SwiftUI, PreferenceKey protocol은 무엇인가?PreferenceKey에 대한 Quick Help 정보를 먼저 보겠습니다. 요약 정보는 View에 의해 생산되는 값 이라고 합니다. protocol로 정의가 되어있고, PreferenceKey를 채택해서 사용하려면 몇가지 구현이 필요합니다. PreferenceKey를 사용하면, 하위뷰에서 preference viewModifier를 통해 preferenceKey 값을 수정하면, 그 값을 부모 뷰에서 감지할 ..
- Total
- Today
- Yesterday
- swift reduce
- 스위프트
- Protocol
- 알고리즘
- swift언어
- swift
- 김프매매
- uikit
- swift 문자열
- 프로그래머스swift
- swift문제
- ios
- 백준swift
- 자연어처리
- createML
- CoreML
- swift 기초
- publisher
- 프로그래머스
- swift알고리즘
- Collection
- 컬렉션
- SwiftUI
- 개발자문서
- 백준알고리즘
- 부스트코스
- Swift 알고리즘
- swift string
- 알고리즘문제
- 프로토콜
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |