override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) test2 { // com.apple.root.default-qos.cooperative print(Thread.current) } test2 { @MainActor () in // com.apple.main-thread print(Thread.current) } } private func test1(_ f: @MainActor @escaping () async -> Void) { Task.detached { await f() } } private func test2(_ f: @escaping () async -> Void) { test1(f) }
@MainActor
関数に変換するときに、メインスレッドにホップするサンクでラップしてくれないの、おかしそう