2011-10-27 18 views
0

私は、画像を作成し、このコードを持っている:これは私のviewWillAppearであるEXC_BAD_ACCESS致命的なエラー

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]; 

を。

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

をしかし、それは、この致命的なエラーを取得します:私はボタンを押すと、これが起こるThread one: Program received signal: "EXC_BAD_ACCESS".setImage部分に私はボタンを押したとき。何が問題ですか? rNumberがintであるよう

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

:私は、私は問題はNSStringの文字列の形式で、あなたにコードを変更すべきだと思う客観C.

答えて

4

に新しいです。

また、ビューが表示されるたびにviewWillAppearが呼び出される傾向があるため、メモリリークが発生するため、背景と結果を解放する必要があります。

+0

お返事ありがとうございます。 Xcode 4.2にはARC(Automatic Reference Counting)があります。私はまだそれらを解放する必要がありますか? – gadgetmo

+0

ARCを使用する場合は解放する必要はありません – Lunayo

+0

ARCを使用する場合、 'viewWillDisappear'で解放されますか? – gadgetmo