Avatar
Xcode 13.2でiOS 13からSwift Concurrencyが使えるようになったけど、SwiftUIでConcurrencyを使うのに便利なtask modifierがiOS 15からなのでちょっと困る。extensionで互換API作るとするとこんな感じかな?
1:32 AM
extension View { func task( priority: TaskPriority = .userInitiated, _ action: @Sendable @escaping () async -> Void ) -> some View { var task: Task<Void, Never>? return self .onAppear { task = Task(priority: priority) { await action() } } .onDisappear { task?.cancel() } } }
1:34 AM
body が走る度に走ってうまくいかなさそうな気がしてきた・・・。