帮帮我!选择复选框时,应用程序崩溃
问题描述:
请看下面的代码。帮帮我!选择复选框时,应用程序崩溃
自从我的应用程序崩溃时,我选择复选框时,代码中是否存在任何泄漏或问题。
寻找任何帮助...
谢谢!
// checkbox at normal state
copyMailCheckbox = [[UIButton alloc] initWithFrame:CGRectMake(150, 220,120 ,40)];
UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"];
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal];
[normalStateImage release];
// checkbox at selected state UIImage
UIImage *checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"];
[copyMailCheckbox setImage:checkedStateImage forState:UIControlStateSelected]; [checkedStateImage release];
// checkbox at highlighted state UIImage
UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"];
[copyMailCheckbox setImage:highlightedStateImg forState:UIControlStateHighlighted]; [highlightedStateImg release];
[self addSubview:copyMailCheckbox];
[copyMailCheckbox release];
答
您有一个分配错误的位置:
UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"];
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal];
[normalStateImage release];
这UIImage对象normalStateImage不需要你调用释放它。记住分配规则,如果您调用init,保留或复制,则释放该对象。否则,你不应该这样做,因为你没有它的所有权。
PD:还请检查一下sudo rm -rf指的是什么。
答
此:
*checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"];
这:
*highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"];
你正在创建一个未知的指针或东西。我不知道怎么说了过去的编译器警告,但你需要指定UIImage
,例如...
UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"];
另外,我建议你使用.png
的图像。虽然不是必需的,但它可以加快一些图像处理操作,并且是图像的一般推荐格式。
编辑:它看起来像你的代码是一个错字,所以请忽略这一点。
+0
不,这是一个错字...你可以看看代码,并提供一些指导我的问题...... – user198725878 2010-12-20 04:27:52
这很可能是你的问题,如果这是一个错字。 – 2010-12-20 04:32:03