From d65d3420cd6da10ab3857cc8dcb6610ebca7b238 Mon Sep 17 00:00:00 2001 From: Harris Borawski Date: Mon, 26 Sep 2022 13:39:30 -0700 Subject: [PATCH] [iOS] fix runtime warnings for published variables in Xcode14 --- ios/packages/swiftui/Sources/SwiftUIPlayer.swift | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/ios/packages/swiftui/Sources/SwiftUIPlayer.swift b/ios/packages/swiftui/Sources/SwiftUIPlayer.swift index a37c0442e..4a0f51bf3 100644 --- a/ios/packages/swiftui/Sources/SwiftUIPlayer.swift +++ b/ios/packages/swiftui/Sources/SwiftUIPlayer.swift @@ -41,7 +41,9 @@ public struct SwiftUIPlayer: View, HeadlessPlayer { public init(contextBuilder: @escaping () -> JSContext = { JSContext() }) { self.contextBuilder = contextBuilder registryWatch = registry.objectWillChange.sink { [weak self] in - self?.objectWillChange.send() + DispatchQueue.main.async { + self?.objectWillChange.send() + } } } @@ -65,7 +67,7 @@ public struct SwiftUIPlayer: View, HeadlessPlayer { self.player = playerValue self.flow = flow self.hooks = hooks - self.result = nil + DispatchQueue.main.async { self.result = nil } for plugin in allPlugins { plugin.apply(player: player) } registry.partialMatchRegistry = partialMatchPlugin @@ -86,7 +88,7 @@ public struct SwiftUIPlayer: View, HeadlessPlayer { player.start(flow: flow) { [weak self] (result) in guard let self = self, self.player == playerValue else { return } - self.result = result + DispatchQueue.main.async { self.result = result } } } @@ -96,7 +98,7 @@ public struct SwiftUIPlayer: View, HeadlessPlayer { player = nil hooks = nil flow = nil - result = nil + DispatchQueue.main.async { self.result = nil } registry.resetView() }