簡體   English   中英

消息發送到解除分配的實例

[英]Message sent to deallocated instance

我有一個應用程序,使用導航控制器導航到不同的視圖。 這就是我正在做的事情:

MapViewController *aMap = [[MapViewController alloc] initWithNibName:@"MapView" 
                                                              bundle:nil ];
[self.navigationController pushViewController:aMap 
                                     animated:YES];
[aMap release];

在用戶操作中,我想返回第一個視圖。 這就是我做的:

-(void)alertView:(UIAlertView *)alertView 
 didDismissWithButtonIndex:(NSInteger)buttonIndex
{
    [self.navigationController popToRootViewControllerAnimated:NO];
}

當我按下調用波紋管方法的按鈕時,我的應用程序按預期進入第一個視圖。 但是,當我按下“主頁按鈕”並嘗試重新打開應用程序時,問題就出現了。 然后,應用程序崩潰,出現以下錯誤:

2010-12-23 14:33:18.504 test[4549:307] *** -[MapViewController respondsToSelector:]: message sent to deallocated instance 0x5c26320

我知道我向一個不存在的對象的實例發送消息,但我沒有發現這發生在哪里

你有什么建議嗎?

在解除分配后,有些東西試圖將消息發送到MapViewController。

它們是引用它的任何對象 - 是它的任何子視圖的委托,還是它接收任何通知,或類似的東西?

如果是這樣,您需要確保取消訂閱控制器的dealloc方法中的任何通知,並將引用控制器的任何delegate參數(在其他對象上)設置為nil。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM