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币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!