しばらく触れていないアプリがあり、更新することにしました。Xcode 4.6で実行すると、Bad Accessエラーが発生し、プロファイルを作成すると、ViewController Alertviewが呼び出され、最終的にNSZombieとして残されるオブジェクトになります。
問題がalertviewなのか、それともそれが呼び出すビューコントローラなのかはわかりません。
アラートビューを呼び出すボタンに関連付けられたアクションは次のとおりです。
- (IBAction)newGame:(id)sender {
timerIsActive = NO;
//UIImage *pauseImage = [UIImage imageNamed:rndImage];
UIImageView *pauseView = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)] autorelease];
pauseView.image = gameImage;
[self.view addSubview:pauseView];
NSString *message = [NSString stringWithFormat:@"Would you like to reset the game?"];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"New Game"
message:message
delegate:self
cancelButtonTitle:@"Back to Game"
otherButtonTitles:@"New Game", nil];
[alert show];
[alert release];
[Flurry logEvent:@"New Game"];
}
アラートビューは次のとおりです。
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
timerIsActive = NO;
NSString *buttonString = [actionSheet buttonTitleAtIndex:buttonIndex];
if( [buttonString isEqualToString:@"Main Menu"] ){
[self.view removeFromSuperview];
} else if( [buttonString isEqualToString:@"View Board"] ){
} else if( [buttonString isEqualToString:@"Back to Game"] ){
timerIsActive = YES;
NSArray *arr =[self.view subviews];
[[[self.view subviews] objectAtIndex:([arr count]-1)] removeFromSuperview];
} else if( [buttonString isEqualToString:@"New Game"] ){
seconds = 120;
board.numOfLetters = 0;
board.currentWordLetters = nil;
board.currentString = nil;
board.words = nil;
board.letters = nil;
//[boardView release];
//[board release];
[timer invalidate];
[self release];
ViewController *viewController = [[[ViewController alloc] initWithNibName:@"ViewController" bundle:nil] autorelease];
viewController.gameSize = self.gameSize;
self.view = viewController.view;
}