본문 바로가기

Concurrency

(4)
[유튭링ㅋ] Mastering Concurrency in iOS 인도형의 유튜브 강좌. 발음이 좀 거북하지만, 매우 잘 정리해 준다. Mastering Concurrency in iOS - Part 1 (Concurrency, GCD Basics) https://youtu.be/X9H2M7xMi9E Mastering Concurrency in iOS - Part 2 (Dispatch Queues, Quality of Service, Attributes) https://youtu.be/yH0RBTdNi3U Mastering Concurrency in iOS - Part 3 (Dispatch Group, Dispatch Work Item) https://youtu.be/SGEWlYB6ZM0 Mastering Concurrency in iOS - Part 4 (Dispat..
[Swift] 가장 간단한 Actor 샘플코드, Actor Counter swift concurrency 에 actor 라는 개념이 있다. 가장 간단하게 actor 를 사용하는 예제를 만들어 보았다. ( with a little help of gpt ) 횟수를 카운트 하는 매우 간단한 카운터 class/actor이다. 카운터를 생성해서, 동시에 수행되는 두 태스크에서 동시에 카운팅이 이루어진다. import Foundation actor MyActorCounter { var counter = 0 func incrementCounter() { counter += 1 } } class MyClassCounter { var counter = 0 func incrementCounter() { counter += 1 } } func testActorCounter() async -> V..
[Swift] publishing changes from background threads is not allowed; make sure to publish values from the main thread swiftui 에서 async 콘텍스트에서 UI 와 관련된 변수를 업데이트할 때 발생한다. xcode에서 보라색으로 나타나는 워닝이다. UI 관련 변수를 업데이트할 때에는 main 쓰레드에서 업데이트 될 수 있도록, await MainActor.run { } 블록으로 감싸주어야 한다. 이 방법은 이전에 사용하던 DispatchQueue.main 을 대체하는 방식이다. 이 방법도 가능하지만, 더 아름다운 방식은, @MainActor 어노테이션을 사용하는 것. 해당 변수를 업데이트하는 코드가 들어있는 함수 선언에 어노테이션을 더해준다. @MainActor func uiUpdateFunc() - ref : Modern Concurrency in Swift Chapter 1, 2
[Swift] error: concurrency is only available in macOS 10.15.0 or newer async, await 를 간단하게 테스트해 보기 위해서, swift package manager 프로젝트를 만들고, 아주 간단한 await, async 예제를 실행해보려 했다. swift package init --type "executable" 로 프로젝트를 만들고, main.swift 를 program.swift 로 바꾸고, 예제 코드를 입력하고, swift build 를 빌드 테스트를 했다. 우선 ubuntu swift 5.6 환경에서는 성공을 했던 코드였는데, 컴파일 에러메시지가 나왔다. /Users/mememe/07_swift_test_projects/asyncawait_pm/Sources/asyncawait_pm/program.swift:24:29: error: concurrency is o..