2011-08-29 61 views
0
-(void) addBookmarkTapped:(id)sender { 
    BookmarkAddViewController *bookmarkAddViewController = 
    [[BookmarkAddViewController alloc] initWithName:currTitle link:self.addressBar.text]; 
    [self presentModalViewController:bookmarkAddViewController animated:YES]; 
    [bookmarkAddViewController release]; 
}     

上面的代碼在返回主控制器時會導致'EXC_BAD_ACCESS'。同樣的錯誤,如果我使bookmarkAddViewController'autorelease'。presentModalViewController memory leak or EXC_BAD_ACCESS

它不會崩潰,如果我刪除發佈,但它會導致內存泄漏? [bookmarkAddViewController release];

我看到很多例子都是這樣做的,爲什麼它在我的情況下不起作用?

+0

您發佈的代碼看起來很好。你的錯誤可能是你的代碼的其他地方。 – Anomie

回答

0

它可能與您在bookmarkAddViewController的初始化方法有關(請發佈。)確保您使用[self dismissModalViewControllerAnimated:YES];正確關閉控制器。

+0

- (id)initWithName:(NSString *)name link:(NSString *)link if((self = [[BookmarkAddViewController alloc] initWithNibName:@「BookmarkAddViewController」bundle:nil])){ self.bmName = name ; self.bmUrl = link; 迴歸自我; } return(id)-1; } 感謝蒙迪,你幫我找到了原因。在我的init方法中,我錯誤地設置了實例變量。它應該是「bmName = name; bmUrl = link; – Espina