在 Xcode 11(测试版)中针对 iOS-13(测试版)更新测试我的应用程序,当我尝试从情节提要实例化viewController时,我崩溃了。
在以前的版本中,使用以下代码可以正常工作:
XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER"];
现在,适用于iOS 13的Apple引入了新方法,即
XYZController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"IDENTIFIER" creator:^__Kindof UIViewController *__Nullable(NSCoder *_Nonnull coder){
return [XYZController alloc] initWithCoder:coder];
}];
在iOS-13中执行这两种方法都会导致崩溃。当崩溃显示在其他地方时。
这是我的崩溃报告。
由于未捕获的异常而终止应用程序 “ NSInternalInconsistencyException”,原因: ''从-traitCollection返回零 不允许。
答案 0 :(得分:3)
注意:临时解决方案
我也遇到了这个问题,并且发现了两个临时修复程序。首先是创建需要实例化的控制器的对象/属性,并在控制器的instantiateViewControllerWithIdentifier
中创建viewDidLoad
。应用程序不会崩溃。
第二个是在dispatch_async(dispatch_get_main_queue())
中实例化控制器。这两个技巧都对我有用。