iPhoneアプリのviewDidLoadメソッドには、次のコードがあります。
zombie[i].animationImages = zombieImages;
zombie[i].animationDuration = 0.8/zombieSpeed[i];
zombie[i].animationRepeatCount = -1;
[zombie[i] startAnimating];
後でアプリで次のコードが呼び出されます。
[zombie[i] stopAnimating];
zombie[i] = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"zh.png"]];
zombie[i].animationImages = flyingZombieImages;
zombie[i].animationDuration = 0.8/zombieSpeed[i];
zombie[i].animationRepeatCount = -1;
[zombie[i] startAnimating];
これにより、アプリがクラッシュし、EXC_BAD_ACCESSが回線に接続されますzombie[i].animationImages = flyingZombieImages;
flyingZombieImages
次のコードで初期化されます:(zombieImages
同じ方法で初期化されます)
NSMutableArray *flyingZombieImages = [NSMutableArray array];
for (NSUInteger i=1; i <= 29; i++) {
NSString *imageName = [NSString stringWithFormat:@"flzom%d.png", i];
[flyingZombieImages addObject:[UIImage imageNamed:imageName]];
}
なぜこうなった?回避策はありますか?