私のアプリは10個のUIImageViewを画面上でランダムに移動し、UIImageViewがコーナーに到達すると、その画像を変更します。問題は、アプリを切り替えて自分のアプリに戻った後、アプリがクラッシュすることです。
コンソールから次のメッセージが表示されます。
"App" exited abnormally with signal 10: Bus error
クラッシュログには次のように記載されています。
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000011
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
問題は私が使用しているという事実によるものだと思いますUIImage imageNamed
、ここにコードがあります:
ViewController.hの場合:
UIImage *red;
UIImage *green;
UIImage *blue;
UIImageView *ballOne;
UIImageView *ballTwo;
UIImageView *ballThree;
UIImageView *ballFour;
// And declare UIImageView for other balls
int clr
ViewController.mの場合:
- (void)viewDidLoad {
...
red = [UIImage imageNamed: @"redTexture.png"];
green = [UIImage imageNamed: @"greenTexture.png"];
blue = [UIImage imageNamed: @"blueTexture.png"];
...
}
- (void)moveAll:(NSTimer *)theTimer{
...
// If UIImageView touches a corner, Do this:
clr = arc4random()%3 + 1;
switch (clr) {
case 1:
[ballOne setImage:red];
break;
case 2:
[ballOne setImage:green];
break;
case 3:
[ballOne setImage:blue];
break;
default:
break;
}
// And do this for the rest of 9 "balls"
}
アプリがクラッシュするのはなぜですか?また、どうすれば解決できますか?