出现unrecognized selector sent to instance问题,大部分是因为对象被提前释放,指针变成野指针,还有一种情况是本身就是野指针,如声明一个局部对象,没有初始化就直接调用。定位难 的原因是你知道这个野指针指到哪个类了,但是不知道是哪里产生了野指针。如果一个正常的对象调用一个不存在的方法,也会给出这个提示,不过这种情况下 Xcode会直接给出crash的代码行,不存在定位难的问题。
以上为查阅资料所以回答的答案、以此为依据定点查找问题的、再此出现这个问题浪费了半个工作日,现在遇到的问题是这样的:点击cell自定义的加号按钮,实现购物车数量加减,点击按钮的时候就会报如题错误。
原本写法:
self.addBtn = [[UIButton alloc]init];
self.addBtn.backgroundColor = [UIColor purpleColor];
[self addSubview:self.addBtn];
错误一:
以为是按钮点击报错,修改点击事件,代理、block都不行
修改无效:
typedef void(^SeletedBtnClickBlock)();
@property (nonatomic, strong) SeletedBtnClickBlock btnClickBlock;
-(void)returnBtnclickBlcok:(SeletedBtnClickBlock)block;
错误二:
以为是模型转换的时候、后台获得的参数定义类型错误。
以上又试了N种办法都解决不掉问题的时候,点了根烟 不由的仰天感叹bug已经影响了我的人生。其实很简单的问题、还是从头理思路、找找原因,最终还是半天灵光一闪,打开电脑、、问题找到了、、感谢乔帮主。
解决问题:
self.addBtn = [[UIButton alloc]init];
self.addBtn.backgroundColor = [UIColor purpleColor];
[self.contentView addSubview:self.addBtn];
其实很小的问题、最后一行加了contentView,问题解决了。