在iOS 12和11上丢失了对委托/协调员的弱引用,在iOS 13/14上有效迅捷5

问题描述

我遇到一个奇怪的问题,缺乏参考。我使用的是协调器模式,子级VC通过委托与协调器进行通信。每当我将新的VC推入导航堆栈时,我都会将vc的委托设置为合格的协调器。在iOS 13/14上,一切正常,但在iOS 12设备上进行测试时,该参考丢失。当从委托变量中删除“弱”时,一切正常,但是此解决方案不是最佳解决方案。

我使用swift 5,我真的希望它不会成为问题。请帮助;(

解决方法

问题已解决,我没有保留对导致此问题的主要协调人的引用。在iOS 13的SceneDelegate中保留了它,我忘了在App Delegate中做同样的事情

var window: UIWindow?
var mainCoordinator: MainCoordinator?

func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.
    application.accessibilityLanguage = "pl-PL"
    if #available(iOS 13,*) {
        
    } else {
        window = UIWindow(frame: UIScreen.main.bounds)
        let navigationController = UINavigationController()
        mainCoordinator = MainCoordinator(navigationController)
        mainCoordinator?.start()
        window?.rootViewController = navigationController
        window?.makeKeyAndVisible()
        
    }
    return true
}

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...