主要代码是这样得:
ReportScrollView.h文件
NumberView *scoresView;//总分数View.NumberView是自定义控件
ReportScrollView.m文件
-(void)initData
{
//加入分数
scoresView = [[NumberView alloc]initWithFrame:CGRectMake(0,0,100,100)];
[scoresView setNum:90];
[self addSubview:scoresView];
}
//数据释放
-(void)dealloc
{
if(scoresView != nil)
[scoresView release];
[super dealloc];
}
NumberView.m
- (void)dealloc {
[super dealloc];//运行到这里,出现EXC_BAD_ACCESS错误,求解答,谢了!
}
------解决方案--------------------
出现这个问题一般是由过多的对一块内存调用release的原因,也就是说,当对一个内存计数器已经是0的内存再次调用release,就会出这个问题,所以,请确认scoresView是否多次释放了?专门检查release.
------解决方案--------------------
问题很有可能出自 NumberView 类
------解决方案--------------------
使用NSZombie找出重复释放对象
------解决方案--------------------
scoresView的类成员是否有多次RELEASE?
------解决方案--------------------
retainCount这个值只是理论上的,在调试过程中,经常出现不正确的现象。
------解决方案--------------------
出现EXC_BAD_ACCESS一般都是因为对象本来已经被释放了,又来了一次release
------解决方案--------------------
在ReportScrollView.m 中scoresView release的地方 后面加一个 scoresView = nil 试一试 一般在viewUnload中这么干