美文网首页
iOS 崩溃问题处理 UIViewController初始化没有

iOS 崩溃问题处理 UIViewController初始化没有

作者: iaiayao | 来源:发表于2020-01-12 15:41 被阅读0次

先看错误信息

*** 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的原因让这个问题出现了,以前真的没有任何问题的呀
就写这么些吧,重构可以再拖一拖了

相关文章

网友评论

      本文标题:iOS 崩溃问题处理 UIViewController初始化没有

      本文链接:https://www.haomeiwen.com/subject/jtziactx.html