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