iOS 崩溃问题处理 UIViewController初始化没有
2020-01-12 本文已影响0人
iaiayao
先看错误信息
*** Assertion failure in UITraitCollection * _Nonnull _UIGetCurrentFallbackTraitCollection(void)(), /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKitCore_Sim/UIKit-3899.13.13/_UIFallbackEnvironment.m:91
看到错误信息搜了一下,发现是有nil所以出现的问题,但是这个项目已经上线多年,代码也都是以前的神人留下的,不知道哇,懵啊,以为是第三方库老了出问题了
我都准备好要跟公司申请重构了啊,因为代码里全是xib啊,适配问题也是很让人头疼
好在google搜到一个类似的解决方案啊,链接放一下
https://cloud.tencent.com/developer/article/1536425
然后我就根据这个,排查了一下我代码中的alloc没有init的
然后就找到了这个
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
QCSlideViewController *slideSwitchVC = [[[QCSlideViewController alloc] setPageNum:pageNum] init] ;
[slideSwitchVC.view setFrame:CGRectMake(0, 0, 1, 1)];
slideSwitchVC.contentSizeForViewInPopover = CGSizeMake(1, 1);
[FxLog error:@"第一个"];
self.navSlideSwitchVC = [[UINavigationController alloc] initWithRootViewController:slideSwitchVC];
}
return self;
}
这是个什么鬼啊,init之前set啥啊
[[[QCSlideViewController alloc] setPageNum:pageNum] init] ;
又找到了代码
- (QCSlideViewController *)setPageNum:(int)num{
pageNum = num;
[self.view setFrame:CGRectMake(0, 0, 0, 0)];
return self;
}
确实不太对啊,我改了试试看
QCSlideViewController *slideSwitchVC = [[[QCSlideViewController alloc] init] setPageNum:pageNum];
再运行试一下,成了!!!!我的天啊!!!!
不知道是不是iOS13.3的原因让这个问题出现了,以前真的没有任何问题的呀
就写这么些吧,重构可以再拖一拖了