我正在创建UIPopoverController
并将“Editor1”设置为内容视图控制器。 当调用者收到didDismissPopover时,我发布了UIPopoverController
。 这是代码:UIPopoverController内存问题
- (IBAction)open1:(id)sender {
Editor1 *editor = [[Editor1 alloc] initWithNibName:@"Editor1" bundle:nil];
_popoverController = [[UIPopoverController alloc] initWithContentViewController:editor];
_popoverController.delegate = self;
[editor release];
[self.popOverController presentPopoverFromRect:self.open1Button.bounds inView:self.open1Button permittedArrowDirections:UIPopoverArrowDirectionAny animated:NO];
}
- (BOOL)popoverControllerShouldDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popoverControllerShouldDismissPopover");
return YES;
}
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController{
NSLog(@"popvoerControllerDidDismissPopover");
[_popoverController release];
}
在我的编辑我有一个UITextField
当用户改变文字,我保存它时,我得到的消息“editingDidEnd”
- (IBAction)editingDidEnd:(id)sender {
NSLog(@"Editing did End");
// SAVE PROCEDURE
}
我的问题关于顺序这些方法被调用。 的顺序是:
2011-09-07 12:35:21.628 iosTest[1967:b603] popoverControllerShouldDismissPopover
2011-09-07 12:35:21.629 iosTest[1967:b603] popvoerControllerDidDismissPopover
2011-09-07 12:35:21.983 iosTest[1967:b603] Editing did End
2011-09-07 12:35:21.985 iosTest[1967:b603] viewWill Disappear
正如你可以看到popoverControllerDidDismissPopover被editingDidEnd:
之前调用,所以这意味着我释放酥料饼的我做我的拯救程序之前。这可能会导致崩溃问题。
此外,在我的保存过程中,我需要在某些情况下要求用户确认。我为此使用UIAlertView
。
你有什么建议吗?
你是指viewdidunload的内容视图控制器(editor1),或uipopovercontroller? –
我的意思是“容器类”,在这里你创建一个Editor1的实例 - Editor1的父类 –