tarunon
こういうことですね @MainActor func myFunc() { self.foo = .... // 合法 someActorsFunc { self.foo = ... // 違法 Task.init { // 合法 self.foo = ... // 違法 } } } @MainActor func myFunc() { self.foo = .... // 合法 DispatchQueue.global().async { self.foo = ... // 脱法 Task.init { // 脱法 self.foo = ... //脱法 } } } @MainActor func myFunc() { self.foo = .... // 合法 DispatchQueue.global().async { self.foo = ... // 脱法 Task.init { // 脱法 await MainActor.run { self.foo = .... // 合法 Task.init { // 合法 self.foo = ... //合法 } } } } }
(edited)
現状で↓のような挙動をしているのはどう解釈しますか?実装上たまたまそうなってるだけ? final class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // MainActor DispatchQueue.global().async { Task { // MainActor } } } }