我有这段代码可以创建图像:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
background = [[UIImageView alloc]initWithFrame:CGRectMake(150, 60, 180, 180)];
result = [[UIImageView alloc]initWithFrame:CGRectMake(150, 60, 180, 180)];
[background setImage:[UIImage imageNamed:[defaults objectForKey:@"colour"]]];
[self.view addSubview:background];
[self.view insertSubview:result aboveSubview:background];


这是在我的viewWillAppear中。当我按下一个按钮时,会发生这种情况:

- (IBAction)oneToSix {
int rNumber = (arc4random() % 6) + 1;
[result setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%@", rNumber]]];
}


但是它出现了致命错误:当我按下按钮时,在Thread one: Program received signal: "EXC_BAD_ACCESS".部分出现了setImage。问题是什么?我是目标C的新手。

最佳答案

我认为问题是NSString中的字符串格式,您应该将代码更改为:

[result setImage:[UIImage imageNamed:[NSString stringWithFormat:@"%d", rNumber]]];


因为rNumber是一个整数。

您应该释放背景和结果,因为每次出现视图时都会调用viewWillAppear,这样会导致内存泄漏。

10-05 20:22
查看更多