今天进行页面跳转...遇到崩溃的问题,虽然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];
问题是解决了,没有崩溃的情况,但是刨根问底具体是为什么,我还是不是很清楚,在此记录一下,有朋友知道原因的可以告知小弟😝
网友评论