UIPopoverController *historyPop = [[UIPopoverController alloc] initWithContentViewController:nav];
[nav release];
[historyPop setPopoverContentSize:CGSizeMake(400, 500)];
[historyPop presentPopoverFromRect:CGRectMake(button.frame.origin.x, button.frame.origin.y, button.frame.size.width, 5) inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];
//[historyPop release];
這是我當前的代碼,但分析器說可能是泄漏,這是(因爲發佈行被註釋掉)。但是,如果我取消註釋發行版,那麼應用程序崩潰,並說dealloc在popover上仍然可見,所以何時應該釋放popover控制器?UIPopoverController和內存管理
發生同樣的錯誤 – 2010-12-07 19:36:10
對不起,我的錯誤 - `presentPopoverFromRect`不保留彈出窗口,所以autorelease在這裏不起作用。您需要將您的類設置爲popover控制器的委託,並在`popoverControllerDidDismissPopover:`中釋放彈出窗口。看到這個問題的第二個答案:http://stackoverflow.com/questions/2867709/retain-release-pattern-for-uipopovercontroller-uiactionsheet-and-modal-view-con – bosmacs 2010-12-07 19:39:53