xcode开发中遇到unrecognized selector sent to instance 0x........的解决方法

 首先贴一下问题代码

 1 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
 2     if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
 3         UIButton *numberButton = [UIButton buttonWithType:UIButtonTypeCustom];
 4         numberButton.frame = CGRectMake(10, 435, 46, 38);
 5         [numberButton setImage:[UIImage imageNamed:@"one.png"] forState:UIControlStateNormal];
 6         [numberButton addTarget:self action:@selector(numberButtonClick:) forControlEvents:UIControlEventTouchUpInside];
 7         [self.view addSubview: numberButton];
 8     }
 9 return self;
10 }
11
12 -(IBAction)numberButtonClick:(id)sender{
13     NSLog(@"---");
14 }

整块代码看起来毫无问题,编译通过。然而一旦运行就会出现以下情形:

2010-03-16 22:23:58.811 Money[8056:207] * Terminating app due to uncaught exception ‘NSInvalidArgumentException‘, reason:‘* -[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance 0x3d03ac0‘

什么鬼?

reason:‘* -[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance 0x3d03ac0‘
NSCFDictionary调用了未知的方法:numberButtonClick:

造成这个错误的根本原因是在memory manage上,  持有 numberButtonClick:方法的对象A 被提前释放,指向A的指针成了野指针,在运行的时候指向了 NSCFDictionary  ,所以造成了程序的崩溃。

怎么解决呢?

我们可以将对象A 声明称 全局的变量 或者 属性  就可以保证 程序的正常运行了。



				
时间: 2024-09-29 10:53:17

xcode开发中遇到unrecognized selector sent to instance 0x........的解决方法的相关文章

移动web开发中自己遇到的三个小题及解决方法

大家好! 这是我第二次写随笔感想,有不足之处希望大家提出,我也算的上一个小白,自己进入前端行业也刚刚半年,在这里半年里我遇到一个技术大牛的好领导,让我在项目中学到很多,想和大家分享一下! 一. 移动端禁止选中内容 如果你不想用户可以选中页面中的内容,那么你可以在css中禁掉: .user-select-none { -webkit-user-select: none;  /* Chrome all / Safari all */ -moz-user-select: none;     /* Fi

iOS中的crash防护(一)unrecognized selector sent to instance

专栏开篇: 在开发的过程中,作开为发者我们经常会遇到崩溃,闪退的情况,而且崩溃,闪退的情况有很多种.如果是在开发测试过程中的话,我们可以及时进行分析修复,但是对于我们的KPI还是会一有定的影响的,给导领留下的印象不佳.而且定位crash仍然需要花费很多的时间.如果崩溃,闪退发生在线上,那么对我们公司的产品影响更大,对我们的影响也是大的不行,轻则挨骂,重则扣工资.而且线上crash难以追踪定位,相信大家都深有体会.如果有一种机制,能够将常见的大多数crash给屏掉蔽,不会crash,而且可以发送c

静态库调用中“unrecognized selector sent to instance”错误

在开发调用静态库的中,出现 “unrecognized selector sent to instance 0x2b5f90”的错误 -[__NSCFConstantString xmlChar]: unrecognized selector sent to instance 0x2b5f90 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantS

利用objc的runtime来定位次线程中unrecognized selector sent to instance的问题

昨天遇到一个只有一行错误信息的问题: -[NSNull objectForKey:]: unrecognized selector sent to instance 0x537e068 由于这个问题发生在次线程,所以没有太有用的堆栈信息,而是只有简单的SIGABRT信息: 考虑到unrecognized selector sent to instance这类问题是由于向某个对象发送了未实现的消息,这个过程大致如下(图片摘自这里): 参考Objective-C的对象模型: struct objc_

iOS开发——异常:[__NSCFNumber length]: unrecognized selector sent to instance

  *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance   网上参考的他人案例,与我的情况一模一样,所以直接盗用他的图和文章了. http://www.tuicool.com/articles/EZ3uMb7         这个错误是作者解析pilst文

出现“unrecognized selector sent to instance”问题原因之一及解决方法。

? 对于iPhone开发初学者来说,很想实现自己在iPhone上的第一个小程序,准备工作就绪侯就信心满满的开始了!一般来说大家可能都是从Hello World做起吧. 反正我是的,:),如果按照文档上的说明去做,一般也不会出现什么问题.也建议初学者这样开始,毕竟会增强我们自己的信心. 但是当我们自己独立去做一个Button实现响应事件的小程序的时候,有时候确给我们出现了一点点小问题.也就是我题目所说的.下边我就列出出现此问题的 错误代码以及解决方式. code: [cpp] view plain

UNRECOGNIZED SELECTOR SENT TO INSTANCE 问题快速定位的方法

开发中常见的一类崩溃错误是遇到:unrecognized selector sent to instance 0xaxxxx…而backtrace又无法明确说明错误在哪行代码,如何快速定位BUG呢? 有时读代码一下很难找到是哪个instance出的问题,这时定制有效的DEBUG断点是最好的办法,方法如下: 在Debug菜单中选择 Breakpoints -> Create Symbolic Breakpoint… 在Symbol中填写如下方法签名: 1 -[NSObject(NSObject)

CRASH: -[NSNull length]: unrecognized selector sent to instance错误的处理办法

开发中从后台请求数据,返回如下: 2014-12-05 16:44:52.535 掌麦[6984:613] getDefaultAddress: reuslt == { item =     { data =         { address = "<null>"; area = "<null>"; city = "<null>"; name = ""; phone = 185030513

unrecognized selector sent to instance的定位

造成unrecognized selector sent to instance的原因很多,对象被提前release.引用的实例的方法不存在了或者这个方法在类中没有实现等等.控制台仅是简单的告诉你出现此种错误,随后一堆堆堆栈相关的地址. 这时想快速定位BUG的话,定制DEBUG断点是一个相比较好的办法,因为更好的我还没想到. OK,废话少扯,步骤如下: 1.在Xcode的菜单栏中选择Debug->Breakpoints->Create Symbolic Breakpoint点击后,会添加一个断