2 u011073953 u011073953 于 2016.02.16 16:37 提问

IOS新手,自定义UIView问题,EXC_BAD_ACCESS code=2

自定义一个View:名为InputWidgetsView.思路是使用XIB来做界面,用XIB关联对应类,然后在StoryBoard中直接拖使用这个类。(我是安卓转来的,我想法就类似于安卓XML里面的com.XXX.XXX.InputWidgetsView 这样的直接写进去一个自定义类)
类中目前只有一行代码。这样的

 @implementation InputWidgetsView
- (void) awakeFromNib{
    [[NSBundle mainBundle] loadNibNamed:@"InputWidgetsView" owner:self options:nil];
}
@end

也就是在类里面来展开一下xib。但是在执行loadNibNamed的时候,程序会卡住几秒,然后报出错误:
Thread 1:EXC_BAD_ACCESS(code=2,address=0x7ffff5ca28ff8)
是运行时候突然在这一行出现一个断点。然后就不往下执行了,也不会报出cresh
我查了关于野指针问题。这里应该不会吧?根本没有任何指针的啊。而且不是有ARC的吗?

2个回答

u011073953
u011073953   2016.02.17 09:47
已采纳

好吧,最后自己找到问题了。调试时候在这一行上面加了一行NSLog,结果是NSLog无限输出。然后发现问题是在XIB里面,我把类关联了Class,这样在加载XIB时候将会调用aweakFromNib。而我在这里面又加载Nib。形成无限递归了。
修改方法:取消XIB文件里面的CustomClass关联,这样在StoryBoard里面直接用这个类的时候,就不会循环递归,而是正常吧XIB加载进去了。

Mr_dsw
Mr_dsw   Ds   Rxr 2016.02.16 21:35

我也是做android的,ios刚入门

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
EXC_BAD_ACCESS (code =2,address=0x6f7fffbc)
EXC_BAD_ACCESS (code =2,address=0x6f7fffbc) 若在getter方法中遇到这个问题导致程序崩溃,应检查属性是否是用的self.XXX   ,应将其改为_XXX,,self.XXX 会再次调用getter方法,造成循环引用
僵尸对象导致crash(Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT))
APP运行过种中闪退,没有打印出任何提示信息,全局断点All Exceptions也没有起作用,而是直接进入main函数,并显示信息"Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)"。 如下图所示: 出现这种情况的闪退,通常是由于调用了一个已经被释放掉的、不存在的僵尸对象。 查找和解决僵尸对象的方法如下: 1、在scheme中打开对象跟踪的属性
EXC_BAD_ACCESS (code=2, address=0x0)
执行任何代码前单元测试崩溃 如果你在Xcode4.3中创建静态框架(或库)target时,勾选了“withunit tests”,当你试图运行单元测试时,它会崩溃: Thread 1: EXC_BAD_ACCESS (code=2, address=0x0) 0 0x00000000 --- 15 dyldbootstrap:start(...) 这是lldb中的一个bug。你可
关于ios开发中遇到thread 1:exc_bad_access(code=1,address=0x50000010)类似的问题
最近开始做公司的ios项目,由于是c
block 传值 遇到的出错点:Thread 1:EXC_BAD_ACCESS(code=1,address=0x10)
Home界面也就是需要接收值的界面。 #pragma mark 推出登录界面 -(void)loginAction:(id)sender {     LoginViewController *loginVC = [[LoginViewController alloc]init]; #warning 遇到block,先执行block块外的语句,再执行块内语句  
内存管理机制 Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)错误
iOS5之后苹果公司引入了ARC机制,大大方便了ios开发者对内存的管理机制。在iphone 4出世的时候为什么ios在512M的内存中可以运行很大的游戏,保持畅快流畅的状态。得益于ios非常好的内存处理机制。       在我们现在创建项目的时候,默认会直接引入ARC机制,我们可以关闭ARC机制:在输入框中输入long点击搜索按钮,如图:          接下来即可进行老版本的内存
iOS Xcode报错exc_bad access code=exc_1386_gpflt处理
今天调试的时候碰到了exc_bad access code=exc_1386_gpflt报错,查了一些资料发现是内存管理方面的问题,并找到了一个调试方法,在这里分享一下,希望能帮到碰到同样问题的朋友。 这个问题一般是访问了已经释放的对象导致的,可以开启僵尸对象(Zombie Objects)来定位问题:在Xcode的菜单:Product->Scheme->Edit Scheme->Run xxx
iOS thread1:exc_bad)access(code=exc_1386_gpflt) 调试方案
问题原因:内存管理问题,多半出现在访问了已经被释放的对象,可以开启僵尸对象定位: 步骤如图: 1. 2.调试完毕,请务必把勾勾去掉。
使用相机时切入后台报错:Thread1:EXC_BAD_ACCESS(code=1,address=0x1)解决办法之一
问题是ARC错误release的对象再次被release。 程序切入后台时不会走disapear方法 参考了http://songzengbin.github.io后总结如下 加入监听监听切入后台或进入前台,手动执行disappear 在init中 [[NSNotificationCenter defaultCenter] addObserver:self selector:@s
Delegate未设为nil导致的thread 1:exc_bad_access(code=EXC_I386_GPFLT)
Delegate未设为nil导致的thread 1:exc_bad_access(code=EXC_I386_GPFLT)