当前位置: 代码迷 >> Iphone >> removeAllObject程序崩溃解决方法
  详细解决方案

removeAllObject程序崩溃解决方法

热度:14   发布时间:2016-04-25 06:08:06.0
removeAllObject程序崩溃
NSMutableArray *array  //有54个图片
-(void) clearsome
{
int i;
UIImageView *image;
for(i=0;i<54;i++)
{
image=[array objectAtIndex:i];
[image removeFromSuperview];
[image release];
image =nil;  //可有可无吧?
}
[array removeAllObjects];    //为什么运行到这就崩溃了。找了很久都没找到原因
[array release];
}
------解决方案--------------------
array中存储的是指针,这些imageview的指针是alloc出来的,当alloc的时候,指针的计数器是1,加入到array的时候,计数器就会加一,变成2,你是不是在加入后就release了一次,这个时候,计数器变成1,你这里又使用image=[array objectAtIndex:i];
[image release];
那么这个时候指针的计数器为0,调用array removeAllObjects]; 会把array中所有的指针计数器减一,那么就会崩溃了。
总之,你看一下,你在生成这些指针的时候,加入array后是不是调用代码release了?


------解决方案--------------------
[image release];
拿掉就好
  相关解决方案