gpt4 book ai didi

ios - 防止函数 instantiateViewController(withIdentifier :)) 的运行时崩溃

转载 作者:行者123 更新时间:2023-11-28 10:16:21 26 4
gpt4 key购买 nike

swift 3.0

根据我在这里的发现,UIStoryboard 总是在函数 instantiateViewController(withIdentifier:) 中返回非可选实例。

open class UIStoryboard : NSObject {
...
open func instantiateViewController(withIdentifier identifier: String) -> UIViewController
}

如果我们添加错误的 identifier 值而没有引起注意,就会发生崩溃。这种情况可能发生在复杂的项目中,在许多 Storyboard 中有大量 Controller ,并且遗漏了一个 Controller StoryboardId

我找到的唯一解决方案是在启动应用程序委托(delegate)时创建一个临时创建所有 Controller 的函数(此函数应仅在 Debug模式下调用)。

func validateControllers() {
guard let _ = xyzStoryboard.instantiateViewController(withIdentifier: "ABC") as? ABCViewController else {
fatalError("fail in init controller ABC from storyboard XYZ")
}
...
}

但我想知道我们是否可以有另一种方法来处理这种情况。或者我应该向 Swift 团队提出这个问题?谢谢!

最佳答案

据我所知,没有防止此类崩溃的解决方案。但这是一件好事,它本应像这样崩溃,以表明您的代码有问题,您需要修复它们!

关于ios - 防止函数 instantiateViewController(withIdentifier :)) 的运行时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41010315/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com