问题描述
我遇到一个奇怪的问题,缺乏参考。我使用的是协调器模式,子级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
}