Cocoa惯性思维调试一例

Cocoa惯性思维调试一例,第1张

概述大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 人总有惯性思维,在编程调试里也不例外.你总以为错误是显然的那一个,可是结果却不是. 在stroyboard中建立2个UIView控制器,如果按下第一个控制其中的reg按钮则会显示第二个控制器视图: - (IBAction)reg:(id)sender {

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处.
如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;)

人总有惯性思维,在编程调试里也不例外.你总以为错误是显然的那一个,可是结果却不是.

在stroyboard中建立2个UIVIEw控制器,如果按下第一个控制其中的reg按钮则会显示第二个控制器视图:

- (IBAction)reg:(ID)sender {    UIStoryboard *sb = [UIStoryboard storyboarDWithname:@"Main" bundle:nil];    UIVIEwController *regVC = [sb instantiateVIEwControllerWithIDentifIEr:@"registerVIEwController"];    regVC.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;    [self presentVIEwController:regVC animated:YES completion:^{        NSLog(@"present Modal VIEw");    }];}

更简单的一个方法,然而在运行时,注意是在点击reg按钮时App Crash掉了,错误关键字如下:

send unrecognized selector to instance 0xXXXXXXXX

其中instance就是self本身.想当然的认为肯定是presentVIEwController:方法导致的,调试时发现App在调用presentVIEwController:本身并没有出错,而是在reg方法返回后才崩掉.这时还是惯性思维,丝毫没有察觉…

结果错误和presentVIEwController:没有半毛钱关系,是由于reg按钮上设置了2个回调方法,其中一个已经不存在了…

好吧,事后回过头来看看出错信息:

首先,报的错是self中未找到presentVIEwController方法,但是self是UIVIEwController的实例,是不可能没有这个方法的 然后App在presentVIEwController调用后都没有出错,那么显然由这个方法负责的可能性会很低

由以上2条可以清楚推断出原因不在presentVIEwController方法,而是另一个不存在self中的方法,到哪里去找显而易见了…

总结

以上是内存溢出为你收集整理的Cocoa惯性思维调试一例全部内容,希望文章能够帮你解决Cocoa惯性思维调试一例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1050740.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存