請你看一下這段代碼開始:的UIViewController沒有得到來自導航控制器被彈出後釋放,如果動作從UIAlertView中代表
/* This app is a game, the user can click an "abort" button anytime,
* and he/she is therefore asked for confirmation ("really abort game?")
*/
- (IBAction)btnAbortClicked:(id)sender {
UIAlertView *alert = [[UIAlertView alloc] init];
[alert setMessage:@"Really abort game?"];
[alert setDelegate:self];
[alert addButtonWithTitle:@"Yes"];
[alert addButtonWithTitle:@"No"];
[alert show];
[alert release];
}
/* Delegate method (I don't like it, I wish I had modal blocking windows) */
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
if (buttonIndex == 0)
[self quitGame];
}
/* pop the view controller */
- (void)quitGame {
[self.navigationController popToRootViewControllerAnimated:YES];
}
問題很簡單 - 但顯然不是足以讓我解決。 UIViewController會彈出,但不會被取消分配。問題與UIAlertView嚴格相關,因爲如果我只是從btnAbortClicked調用quitGame,視圖控制器會彈出並立即解除分配。
相反,它似乎有些神祕的實體保留它。
你能幫我嗎?提前致謝。
對不起,我是一個白癡。這是一個愚蠢的計時器沒有被停用,仍然保持視圖控制器的生命。這個問題確實與UIAlertView無關,這只是偶然的:當用戶完成遊戲而沒有中止時,計時器被正確無效,因此沒關係。當用戶中止遊戲時,我忘記了使計時器無效。對不起,浪費你的時間夥計 – gd1 2011-03-31 23:27:20