当点击Button触发事件时报 NSInvalidArgumentException 的错误的解决办法

来源:互联网 发布:滴滴php面试题 编辑:程序博客网 时间:2024/05/17 00:57

         有关这个错误在这里做一个简单的总结,因为遇到过两次而且第一次花了几个小时来解决,很是浪费时间。

         现象,点击按钮时,程序crash掉,在console中看到的最后两句是:terminate called after throwing an instance of 'NSException'    Program received signal: "SIGABRT".

         第一次遇到的时候先在网上查了一下,大多数都说的是调用的那个实例被先释放掉了,所以会报此错误,但是我仔细检查了代码,而且在释放的时候打断点查看,实例并没有被先释放掉,继续查找原因,后来发现被调用的方法被宏屏蔽掉了,汗,宏屏蔽在调用方法的前一个方法前,所以一直未察觉,所以能确定,如果方法未定义,则会报此错误。

         第二次遇到该错误是在写一个Demo的时候,原语句如下:

               [pButton addTarget:self action:@selector(ButtonClick:) forControlEvents:UIControlEventTouchUpInside];

         首先排除实例首先被释放掉的原因,后来继续查找,居然是在selector中的方法后面多打了一个冒号。

          改为 [pButton addTarget:self action:@selector(ButtonClick) forControlEvents:UIControlEventTouchUpInside];

         问题解决,为什么打一个冒号会crash的原因有时间再研究吧,先总结到这里,研究了继续完善该文章.....

原创粉丝点击