Xcode 报 unrecognized selector sent to instance 崩溃错误

今天进行页面跳转...遇到崩溃的问题,虽然N+次才可能出现崩溃的情况,但是找到问题点了

代码如下

    UIWindow *oldWindow=[UIApplication sharedApplication].keyWindow;
    oldWindow.rootViewController=nil;

    TestViewController *vc = [[TestViewController alloc]init];
    
    [UIApplication sharedApplication].keyWindow.rootViewController = vc;
    [[UIApplication sharedApplication].keyWindow makeKeyAndVisible];

然后就可能会有崩溃的情况:
崩溃日志如下:

[TestViewController inputViewSet]: unrecognized selector sent to instance...

"Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '***

讲道理这样是没有问题的 吧...

原因是 不能识别 inputViewSet 方法 但是这个方法我不是我自定义的,应该不是声明修饰符的错误,或者方法内错误,内存空间被释放导致而后分配给了其他类的实例变量,感觉我这个VC是不能正确识别本身的ViewController 。

我尝试换个方式

    UIWindow *oldWindow=[UIApplication sharedApplication].keyWindow;
    oldWindow.rootViewController=nil;
    
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    
    TestViewController *vc = [[TestViewController alloc]init];
    
    AppDelegate *windowx =  (AppDelegate *)[[UIApplication sharedApplication] delegate];
    windowx.window.rootViewController = vc;
    
    [[UIApplication sharedApplication].keyWindow makeKeyAndVisible];

问题是解决了,没有崩溃的情况,但是刨根问底具体是为什么,我还是不是很清楚,在此记录一下,有朋友知道原因的可以告知小弟

你可能感兴趣的:(Xcode 报 unrecognized selector sent to instance 崩溃错误)