Я интегрирую нативный модуль iOS с Flutter с помощью Swift. Я пытаюсь получить UinavigationController из контроллера вида корня, а затем передать его вместе с FlutterMethodcall и FlutterResult к обработчику. Тем не менее, я получаю предупреждения о потенциальных гонках данных при прохождении вызова, результата и навигации по обработчику завершения Async Dispatchqueue.main.async Block. < /P>
Вот упрощенная версия моего кода: < /p>
Я интегрирую нативный модуль iOS с Flutter с помощью Swift. Я пытаюсь получить UinavigationController из контроллера вида корня, а затем передать его вместе с FlutterMethodcall и FlutterResult к обработчику. Тем не менее, я получаю предупреждения о потенциальных гонках данных при прохождении вызова, результата и навигации по обработчику завершения Async Dispatchqueue.main.async Block. < /P> Вот упрощенная версия моего кода: < /p> [code]private func initialize( _ call: FlutterMethodCall, result: @escaping FlutterResult ) { getNavigationControllerLegacy(call: call, result: result) { methodCall, flutterResult, navigation in guard let nav = navigation else { flutterResult(FlutterError(code: "NO_NAV", message: "Navigation controller not found", details: nil)) return } let liveness = Liveness(methodCall, result: flutterResult) liveness.viewController = nav liveness.execute() } }
if let window = UIApplication.shared.windows.first(where: { $0.isKeyWindow }), let rootViewController = window.rootViewController { if let nav = rootViewController as? UINavigationController { navigationController = nav } else if let nav = rootViewController.navigationController { navigationController = nav } }
completion(call, result, navigationController) } } [/code] Какой правильный способ передать uinavigationController без риска раст данных или неопределенного поведения?