问题描述
- 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的吗?
解决方案
好吧,最后自己找到问题了。调试时候在这一行上面加了一行NSLog,结果是NSLog无限输出。然后发现问题是在XIB里面,我把类关联了Class,这样在加载XIB时候将会调用aweakFromNib。而我在这里面又加载Nib。形成无限递归了。
修改方法:取消XIB文件里面的CustomClass关联,这样在StoryBoard里面直接用这个类的时候,就不会循环递归,而是正常吧XIB加载进去了。
解决方案二:
我也是做android的,ios刚入门
时间: 2024-11-16 14:49:53